LoginSignup
2
0

More than 3 years have passed since last update.

実は、Rubyは改行と空白を区別しています

Posted at

「Ruby は改行と空白を区別していない」という話をちらちら見かけます1
そんなわけないのでして。

改行と空白が区別されないなら

x = 1 puts x

1 が表示されるはずですが,SyntaxError になります。そりゃそうだ。
また,

puts
1

1 が表示されるはずですが,改行しか出力されません。そりゃそうだ。

Ruby はむしろ改行と空白を区別する言語です。だからこそ文末のセミコロンが省略できるのですね。

なぜ広まった?

Ruby on Rails チュートリアル 第4版の「4.3.4 CSS、再び」
https://railstutorial.jp/chapters/rails_flavored_ruby?version=5.0#sec-css_revisited
には,

実は、Rubyは改行と空白を区別していません

というくだりがあります2。ここが発信源かっ?!

Ruby on Rails チュートリアルは本当に優れたチュートリアルだと思います。和訳の品質もけっこう高くて,作者と訳者の方々には感謝しています。
それだけに,どうしてこんな初歩的な誤りが書かれているのかと,残念に思います。


  1. ここでいう「空白」はいわゆる「半角スペース」(U+0020)のこと。 

  2. 最新版でどうなっているかは(有料なので)知らない。 

2
0
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0