Swift ー> Kotlin(他) へ転向する場合に気をつけること
JavaやC++などど比べて新しい言語であるSwiftやKotlinにはバグを防ぐための工夫が随所に散りばめられている。
その一つがSwiftの「代入は値を返さない」というものだ。
これがなんの役に立つのかと言うと、他の言語で
if (a == b) {
do something
}
としたいところで
if (a = b) {
do something
}
とやってもaにbを代入すること自体に問題がなければ()内はTRUEになって後が実行される。
こう言うミスを避けるためにSwiftではa=bがTRUEだったりFALSEだったりせず、コンパイルエラーが出る。
だからこのぬるま湯に浸かっていると多言語に移ったときに間違ってa==bとすべきところをa=bとしてしまう可能性がある。
言語ごとにコードの安全性を高める工夫がされているのはありがたいが、気をつけないと妙な癖をつけてしまい、かえってバグを作り込んでしまう結果になりかねない。