「Rust」の版間の差分
削除された内容 追加された内容
→制御構造: match式 |
→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() ====
|