基於@cyt答案,我寫了一個簡單枚舉這些顏色也重載+
操作,因此您可以打印使用該枚舉。
這一切都up on Github,但它就是這麼簡單:
enum ANSIColors: String {
case black = "\u{001B}[0;30m"
case red = "\u{001B}[0;31m"
case green = "\u{001B}[0;32m"
case yellow = "\u{001B}[0;33m"
case blue = "\u{001B}[0;34m"
case magenta = "\u{001B}[0;35m"
case cyan = "\u{001B}[0;36m"
case white = "\u{001B}[0;37m"
func name() -> String {
switch self {
case black: return "Black"
case red: return "Red"
case green: return "Green"
case yellow: return "Yellow"
case blue: return "Blue"
case magenta: return "Magenta"
case cyan: return "Cyan"
case white: return "White"
}
}
static func all() -> [ANSIColors] {
return [.black, .red, .green, .yellow, .blue, .magenta, .cyan, .white]
}
}
func + (let left: ANSIColors, let right: String) -> String {
return left.rawValue + right
}
// END
// Demo:
for c in ANSIColors.all() {
println(c + "This is printed in " + c.name())
}
這裏查出來這個驚人的解決方案:https://stackoverflow.com/questions/9005769/any-way-to-print-in-color-with-nslog – Martian2049