我正在浏览一些代码并发现了这一点:
stem = ""
answer = ""
return if stem.nil? || answer.nil? || \
stem.question == answer.question
\
是什么?我知道\
用于字符串,但我之前从未见过用例。这是语法错误还是一些高级ruby语法?我错过了什么吗?
答案 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程序是表达式的序列。每个表达式由分号(;)或换行符分隔。行尾的反斜杠不会终止表达式。