您可以在条件文档中放入条件语句吗?
IE浏览器:
sky = 1
str = <<EOF
The sky is #{if sky == 1 then blue else green end}
EOF
Run Code Online (Sandbox Code Playgroud)
谢谢
是的你可以。(您尝试过吗?)像您一样声明的HEREDOC就像双引号一样。如果您碰巧希望得到相反的结果,则可以将HEREDOC指标单引号,如下所示:
str = <<EOF
#{ "this is interpolated Ruby code" }
EOF
str = <<'EOF'
#{ This is literal text }
EOF
Run Code Online (Sandbox Code Playgroud)
除非您有使用这些名称的方法或局部变量,否则示例中的“绿色”和“蓝色”是错误的。您可能想要:
str = <<EOF
The sky is #{if sky==1 then 'blue' else 'green' end}
EOF
Run Code Online (Sandbox Code Playgroud)
...或更短版本:
str = <<EOF
The sky is #{sky==1 ? :blue : :green}
end
Run Code Online (Sandbox Code Playgroud)
与所有字符串插值一样,每个表达式的结果都已#to_s调用它。由于符号的字符串表示形式是相同的文本,因此在插值中使用符号就像在键入时节省一个字符。我最常使用它,例如:
cats = 13
str = "I have #{cats} cat#{:s if cats!=1}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4585 次 |
| 最近记录: |