0
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

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

「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. 最新版でどうなっているかは(有料なので)知らない。 

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
0
Help us understand the problem. What are the problem?