Sinatra不支持多行?

jsa*_*ath 1 ruby sinatra

对于以下代码,为什么只打印"World"

get '/' do
 "Hello"
 "World"
end
Run Code Online (Sandbox Code Playgroud)

Tom*_*kas 12

这与sinatra本身无关.它只使用块的返回值,而在ruby中,返回值是最后一次计算的表达式,在您的情况下是"World".这可能对你有用:

get '/' do
  r = "Hello"
  r += "World"
end
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您可以根据需要添加任意数量的字符串值,r最后一个表达式将返回完整的字符串"HelloWorld".

  • 仍然,每次使用+都会生成一个新的字符串对象.尝试使用<<代替. (4认同)