Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 你能把条件语句放在here文档中吗?_Ruby_Heredoc - Fatal编程技术网

Ruby 你能把条件语句放在here文档中吗?

Ruby 你能把条件语句放在here文档中吗?,ruby,heredoc,Ruby,Heredoc,你能把条件语句放在here文档中吗 即: sky=1 str=是的,你可以。(你试过了吗?)HEREDOCs声明你的行为就像一个双引号字符串。如果您恰好想要相反的结果,您可以单引号引用您的HEREDOC指标,如下所示: str = <<EOF #{ "this is interpolated Ruby code" } EOF str = <<'EOF' #{ This is literal text } EOF 太棒了,非常好用!需要类似于“我有{cats}c

你能把条件语句放在here文档中吗

即:

sky=1
str=是的,你可以。(你试过了吗?)HEREDOCs声明你的行为就像一个双引号字符串。如果您恰好想要相反的结果,您可以单引号引用您的HEREDOC指标,如下所示:

str = <<EOF
  #{ "this is interpolated Ruby code" }
EOF

str = <<'EOF'
  #{ This is literal text }
EOF

太棒了,非常好用!需要类似于“我有{cats}cat{:s if cats!=1}”的东西。谢谢如果在某个变量中有:蓝色和:绿色怎么办?表示数组颜色[0],颜色[1]等。。herdeoc将如何改变?@VijayDev它是标准的Ruby代码,用
{…}
包装;尝试一下你期望工作和看到的东西。你可以做到这一点,但最好是超越技术能力去做,并决定这是否有利于代码的可维护性。我更希望看到条件测试发生在here文档之外,分配给变量,然后将变量嵌入here文档分配中。在本例中,这似乎是一个细微的区别,但有助于在程序增长时更好地组织代码,有点像在Rails或其他MVC中分离逻辑和显示。
str = <<EOF
  #{ "this is interpolated Ruby code" }
EOF

str = <<'EOF'
  #{ This is literal text }
EOF
str = <<EOF
  The sky is #{if sky==1 then 'blue' else 'green' end}
EOF
str = <<EOF
  The sky is #{sky==1 ? :blue : :green}
end
cats = 13
str = "I have #{cats} cat#{:s if cats!=1}"