首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >你能在here-doc中放一个条件语句吗?

你能在here-doc中放一个条件语句吗?
EN

Stack Overflow用户
提问于 2010-12-03 13:34:52
回答 1查看 6.1K关注 0票数 4

你能在here-doc中放一个条件语句吗?

即:

代码语言:javascript
复制
sky = 1
str = <<EOF
The sky is #{if sky == 1 then blue else green end}
EOF

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-03 13:38:39

可以,停那儿吧。(你试过了吗?)HEREDOC就像你声明的那样,就像一个带双引号的字符串。如果你碰巧想要相反的结果,你可以像这样单引号引用你的HEREDOC指标:

代码语言:javascript
复制
str = <<EOF
  #{ "this is interpolated Ruby code" }
EOF

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

示例中的“绿色”和“蓝色”是错误的,除非您有具有这些名称的方法或局部变量。你可能想要其中之一:

代码语言:javascript
复制
str = <<EOF
  The sky is #{if sky==1 then 'blue' else 'green' end}
EOF

...or terser版本:

代码语言:javascript
复制
str = <<EOF
  The sky is #{sky==1 ? :blue : :green}
end

与所有字符串插值一样,每个表达式的结果都会调用#to_s。由于符号的字符串表示是相同的文本,因此在这样的插值中使用符号可以在键入时节省一个字符。我最常用的用法是:

代码语言:javascript
复制
cats = 13
str = "I have #{cats} cat#{:s if cats!=1}"
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4342771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档