颜色代码和字符串插值
Color codes and string interpolation
我正在尝试为文本着色。假设我想要蓝色文字。这是我得到它的方式:
"\e[34mThis is blue text.\e[0m"
我正在使用 define_method
创建多种方法(每种颜色一种)。我将每种颜色的颜色代码保存在一个数组中。我遍历颜色数组和颜色代码,然后执行以下操作:
"\e#{code}m[#{self}\e[0m"
当我 运行 它时,我得到 "m[test"
而不是彩色文本。
有什么想法吗?如果我输入的不是 #{code}
,而是实际的代码,它可以工作,但是那会像 20 if
s,每种颜色一个,它不会是 DRY。
您可能是复制粘贴的受害者:)
# ⇓ incorrect
puts "\e#{code}m[#{self}\e[0m"
# ⇓ correct
puts "\e[#{code}m#{self}\e[0m"
左方括号应该跟在 \e
之后,而不是 m
。
我正在尝试为文本着色。假设我想要蓝色文字。这是我得到它的方式:
"\e[34mThis is blue text.\e[0m"
我正在使用 define_method
创建多种方法(每种颜色一种)。我将每种颜色的颜色代码保存在一个数组中。我遍历颜色数组和颜色代码,然后执行以下操作:
"\e#{code}m[#{self}\e[0m"
当我 运行 它时,我得到 "m[test"
而不是彩色文本。
有什么想法吗?如果我输入的不是 #{code}
,而是实际的代码,它可以工作,但是那会像 20 if
s,每种颜色一个,它不会是 DRY。
您可能是复制粘贴的受害者:)
# ⇓ incorrect
puts "\e#{code}m[#{self}\e[0m"
# ⇓ correct
puts "\e[#{code}m#{self}\e[0m"
左方括号应该跟在 \e
之后,而不是 m
。