islands5 blog

日々起こったことを共有したり、思ったこと、勉強したことを書いていくブログ。普段はRailsやAWSを活用したWeb系の開発をやってます。

Rust を始めてみている(if 式について)

最近は少しずつ Rust の本を写経していってます
なにかしらのアウトプットを軽くでもしていければな〜と思ってちょっとメモ
if の話です

プログラムのソースコードは言語ごとの文法に則って記述されます
言語の文法は文(Statement)と式(Expression)というもので構成されています めっちゃ簡単に言うと文は値を返さない、式は値を返すという特徴があります。

普段僕がよく使ってる Ruby も if は式で、そうゆう点では Rust は if を Ruby っぽく使えそうです

例えばある特定の値を条件によって変化させたい場合

if 文を扱う言語(C や Go など)の場合
(cond は何かしらの条件です)

int value = 0;

if(cond) {
  value = 5;
}else{
  value = 10;
}

一旦宣言して上書きするような感じ 一方 if 式(Rust や Ruby)の場合

let value = if cond {
                     5
                   } else {
                     10
                   };

こんな感じで1行で書けます

let value = if cond == 0 { 5 } else { 10 }

こんな感じで1行でもかけちゃうからか、Rustでは三項演算子がないみたいです
Ruby では一応三項演算子はかける
こうゆう他の言語との比較は面白いですね!

参考リンク

式と文、評価と実行、そして副作用 ―― プログラムはいかにして動くのか【前編】

演算子式 (Ruby 3.3 リファレンスマニュアル)