削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
→‎if 式: もし セミコロン<code> ; </code> をつけると、ブロックの値は、単位ユニット <code>()</code> になります。
タグ: 2017年版ソースエディター
445 行
::Rustの '''if式''' は、[[C言語]]の三項演算子<syntaxhighlight lang=c inline>式 ? 値1 : 値2</syntaxhighlight>や、[[Python]]のif式<syntaxhighlight lang=c inline>値1 if 式 else 値2</syntaxhighlight>のように値を持ちます。
:気をつけたいのは、if式では、 <code>"真"</code> と <code>"偽"</code> とセミコロン<code> ; </code>を付けてはいけない点です。
:: もし セミコロン<code> ; </code> をつけると、ブロックの値は、単位ユニット <code>()</code> になります。
:また、<syntaxhighlight lang=rust inline>let msg = </syntaxhighlight>の文末の<code>};</code> のセミコロンも忘れがちです。
Rust では if に限らず、コードブロックは式の一種で値を返します<ref>コードブロックが値を持つプログラミング言語としては、BCPLや[[Ruby]]があります。</ref>。その場合、コードブロックの最後の式がコードブロックの値となりセミコロン<code> ; </code>は不要で、もし、<code> ; </code>をつけると<code> ; </code>の次の式(=空文)の値<code> () </code>がコードブロックの値になります。
 
この特徴は、関数型プログラミングを意識したものですが、同時に後に説明する所有権の移譲で重要な役割を果たします。
 
==== Some() ====