Ruby条件语句中的反斜杠

时间:2016-01-27 16:01:20

标签: ruby-on-rails ruby

我正在浏览一些代码并发现了这一点:

stem = ""

answer = ""

return if stem.nil? || answer.nil? || \
          stem.question == answer.question

\是什么?我知道\用于字符串,但我之前从未见过用例。这是语法错误还是一些高级ruby语法?我错过了什么吗?

2 个答案:

答案 0 :(得分:9)

这是一个无用的续行角色。

问题"是语法错误"似乎很容易发现。

答案 1 :(得分:2)

\用于表示ruby中的行继续。使用\将删除\n(换行符)字符。

示例(使用字符串):

没有\

2.1.2-perf :018 > s = "test this
2.1.2-perf :019"> out"
 => "test this\nout"

使用\

2.1.2-perf :020 > s = "test this \
2.1.2-perf :021"> out"
 => "test this out"

示例(不使用字符串):

没有\

2.1.2-perf :043 > return "test" if true && false &&
2.1.2-perf :044 >   true
 => nil

使用\

2.1.2-perf :045 > return "test" if true && false && \
2.1.2-perf :046 >   true
 => nil

在您的情况下,这并不重要,但这不是语法错误。

来自doc

  

Ruby程序是表达式的序列。每个表达式由分号(;)或换行符分隔。行尾的反斜杠不会终止表达式。