"hello".length和"hello".length有什么区别?

She*_*har 1 ruby

当我在ruby控制台中运行以下示例时,我感到很惊讶.它们都产生相同的输出.

"hello".length
Run Code Online (Sandbox Code Playgroud)

"hello"                     .length
Run Code Online (Sandbox Code Playgroud)

ruby控制台如何移除空间并提供正确的输出?

3li*_*t0r 6

您可以在任何地方放置空格,解释器会查找行尾.例如:

有效

"hello".
  length
Run Code Online (Sandbox Code Playgroud)

无效

"hello"
  .length
Run Code Online (Sandbox Code Playgroud)

解释器在行尾看到点,知道必须跟进它.而在第二种情况下,它认为线已完成.一行中的空间量也是如此.解释器如何移除空格是否重要?重要的是你知道这种行为.

如果你想要你甚至可以

"hello"   .      length
Run Code Online (Sandbox Code Playgroud)

它仍然有效.

我知道这不是你问题的答案,但"怎么样"很重要?

编辑:我在下面的评论中得到了纠正.上面给出的多行示例在脚本而不是IRB中运行时都是有效的.我把他们和经营者搞混了.运行脚本时,以下内容也适用:

有效

result = true || false
Run Code Online (Sandbox Code Playgroud)

有效

result = true ||
  false
Run Code Online (Sandbox Code Playgroud)

无效

result = true
  || false
Run Code Online (Sandbox Code Playgroud)