yamarkz's blog

紫陽花

ヨーダ記法について。 スターウォーズ公開記念

ヨーダ記法

if文を書いた際に定数を左辺に書く記法のことをヨーダ記法と言います。

# 普通の書き方
if(star == 10){

return NoYoda;

}

# ヨーダ記法
if(10 == start){

return YesYoda;

}

ヨーダ記法を使う理由

ヨーダ記法で書くと、比較(==)を誤って代入(=)でコーディングした場合でも、
コンパイルエラーで発見することができます。

ヨーダ記法が受け入れられない理由

世間一般的には、あまりこの書き方は受け入れられていません。
あまり良しとされていない理由は
1. 直感的に見えない
2. 英文からすると不自然
3. ワーニングを有効すれば発見することができる

リーダブルコードでも紹介されています。
Amazon.co.jp: リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice): Dustin Boswell, Trevor Foucher, 須藤 功平, 角 征典: 本

現代のコンパイラはif (obj = NULL)と書くと警告を出してくれる。したがって、「ヨーダ記法」は過去のものになりつつあると言えるだろう。