削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
→‎分岐: Rust は、ifmatch の2つの分岐構文を持ちます。 // 条件式に整数を使うと -> コンパイルエラー
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
→‎if: Fix markup;コードブロックが値を持つプログラミング言語としては、BCPL, Ruby, ScalaKotlinがあります。
タグ: 2017年版ソースエディター
440 行
:: ifの、分岐先の2つの式の型は同じでなければいけません。
:: else節が省略された場合は、Unit 型を返さなければいけません。
::: 式の最後に、セミコロン<code>};</code> が必要ということです<ref>C言語系では、式を文にする為いに<code>};</code> が必要です。Rustもそう説明されている場合がありますが、Rustでは式の型の一致が目的です。</ref>。
:また、<syntaxhighlight lang=rust inline>let s = if i == 0 {</syntaxhighlight>の文末の<code>};</code> のセミコロンも忘れがちです。
:Rust では if に限らず、コードブロックは式の一種で値を返します<ref>コードブロックが値を持つプログラミング言語としては、BCPL, [[Ruby]], [[Scala]]や[[Kotlin]]があります。</ref>。その場合、コードブロックの最後の式がコードブロックの値となりセミコロン<code> ; </code>は不要で、もし、<code> ; </code>をつけると<code> ; </code>の次の式(=空文)の値<code> () </code>がコードブロックの値になります。
 
この特徴は、関数型プログラミングを意識したものですが、同時に後に説明する所有権の移譲で重要な役割を果たします。