上記の二つは同じ処理ができるのでreturnを使う必要性が見当たりません。
二つの関数は同じ処理ではありませんよね。
Swift
1func ねこ(nekozu: Int) -> Int {
2
3return nekozu
4}
関数ねこ()
は、引数nekozu
の値をそのまま返しています。
一方、
Swift
1func nyan(nya: Int) {
2 print(nya)
3}
関数nyan()
は、内部で引数nya
の値を表示しています。
return
文もありません。
数値の表示は関数内部ではなく、続けて入力した関数print()
で処理しています。
結果だけみると同じ処理に見えますが、実は全く違った処理を行っています。
たとえば、戻り値を変数に代入せず、関数だけをよびだしたらどういう結果になると思いますか。
Swift
1nyan(nya:1)
2ねこ(nekozu:2)
こんな感じに変更して試してみると良いと思います(本来は戻り値がある関数ねこ()
は、きちんと戻り値を処理しないといけないのですが、playgroundやpaiza.ioでは警告がでないようです)。
ちなみに、
Swift
1let n = nyan(nya:1)
2print(n)
この書き方だと、playgroundでは警告が出てくるはずです(paiza.ioでは出ません)。
Constant 'n' inferred to have type '()', which may be unexpected
このような警告が出てきていませんか?
ざっくり言うと、「戻り値がない関数の値を定数n
に代入していますが、予想外の結果になります」という感じのニュアンスです。
出力結果も
1
()
となっていて、数字ではなくて()
が表示されていると思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。