Rustについて一瞬調べてたら for式 (for expression) があるらしいということがわかって、値を返すことを期待していたらどうやら ()
を返すらしかった。
以下のドキュメントをみるとStatementsではなくExpressionsの中で for expression と紹介されていた。
doc.rust-lang.org
調べてたら以下のissueに辿り着いた。 (2017年に閉じられている)
github.com
forやwhileループで値を返せてほしいという旨のissueで色々会話があったけど最終的には「ループで値を返すのはエッジケースだしdownsideが多そうなので現状は ()
を返すことにします」でまとまっていた。
[2022/2/27 追記]
Twitterで、forとwhileで値を返すのがエッジケースで、loopはそうではないということを教えていただけましたので、追記しておきます。
揚げ足取りレベルの突っ込みなんだけど、「ループで」値を返すのがエッジケースではなくて「forやwhileで」値を返すのが、ですね。loopの方は普通にbreak with valueで返すことあるし、実際()以外の値を返せる。
— κeen (@blackenedgold) February 21, 2022
Rustのfor式が式である件 - stefafafan の fa は3つですhttps://t.co/HAbRvHXnxq