4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rubyist が罠にはまる Rust の範囲

Posted at

Ruby と Rust の範囲の書き方の違い

Ruby 使いが Rust を勉強しはじめて初日に驚くことの一つに,

1..10 は〈1 から 10 まで〉ではなく〈1 から 9 まで〉を意味する,

ということがある。

Ruby と Rust の範囲の書き方の対照は以下のごとし。

Ruby Rust
1..10 1..=10
1...10 1..10

やっちまった

Rust の .. の仕様はとうの昔に分かっていたはずなのに,先日,1 から size まで繰り返そうとして,Ruby の癖で,うっかり

for i in 1..size {

}

と書いてしまった。
結果の違いがささいなことだったので,しばらくバグに気付かなかった。

恨みと和解(?)

Rust を勉強した初日,.. に関して

ったく,他言語のこともちゃんと調べて仕様を決めてほしいよな

と思った。

ところがこれは勘違いで,Rust の範囲の書き方については突っ込んだ議論が行われ,その際に当然(?)Ruby のケースについても俎上に上がっていた。

「Ruby のほうがおかしいんじゃ」というような話も確か出てたような(だいぶ前に読んだのでよく覚えてない)。

結論の当否は私には分からないけれど,きちんとした議論の末に決まった仕様であるらしいことは分かった。

で,ごめん,その議論のページ(たしか Rust の issues だったと思う)の URL を載せようと思ったんだけど,見つけられなかった。

誰か教えて〜 (ついでに議論の要点を解説してくれると嬉しいにゃ〜)

あと,なんか昔,Rust に ... って無かったっけ? 今試したら unexpected token って怒られたんだけど。

4
1
6

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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?