[Swift] 30 関数定義にあるアンダースコアの意味

[M1 Mac, Ventura 13.3.1, Xcode 14.3]

前から関数の定義で引数の所にあるアンダースコアが気になっていたので調べてみました。

アンダースコアを付けると関数を使用する際に引数ラベルを省略できるそうです。これには驚きました。普通はアンダースコアなしでも引数ラベルはいらないものですが。

これのおかげでコードの見栄えがどっちにしても悪くなるんですが、Appleにすればどうでもいいようです。

ハードやOSの見た目にはこだわるのに、開発者にだけ見える部分には無頓着ですね。

# 引数にvalueを必ず付ける
func intToString(value: Int) -> String {
    return String(value)
}

print(intToString(value:1))

# 引数にvalueを付けなくてもよい
func intToString2(_ value: Int) -> String {
    return String(value)
}

print(intToString2(1))

出力
----------
1
1
----------