読み進めていく本↓
前回「【Swift奮闘記ep5】演算子とか制御構文(条件分岐や繰り返し)とか」
次はようやく関数に入る。関数も基本的な文法で、修行はまだ続く。
はやくアプリ制作に直結するようなソースコードを打ってみたい(実戦を積みながらコードを覚えていくほうが楽しい)が、基礎をマニュアル通りにしっかりと作っていきたいので、今回は我慢。
ひたすら基礎練習。部活を思い出す。
ではさっそく。
関数
Swiftにおける関数も特段変わったことはないのだが以下のように因数を使う場合、値の型を指定しなくてはいけないのが面倒だ。
func sayHello1(name:String) {
print(“\(name)さんこんにちは!“)
}
sayHello1(name:“たかし“)
ちなみに値の型を指定しないとエラーとなる。
関数実行の指示の因数もめんどくさいな〜。sayHello1(“たかし”)で済ませたいところ。
結果についてはわざわざ書くこともないとは思うが以下の様になる。
たかしさんこんにちは!
戻り値について
戻り値って初心者にとっては何のために使うのかよくわからないと思うんだけど、本の説明には
関数の中で色々処理させて、その結果をもらい時があります。
と書いてあって、いまいちどの場面ででくるかわからない。
よくわからないな〜となった時に、俺がいつも思い出す説明は「関数の結果を変数(定数)に代入したい時に、戻り値というものを使う」ということだ。
つまり、本にも書いてあるが、
func sayHello3( ) -> String {
return “こんにちは!“
}
let a = sayHello3( )
変数(定数)に値を代入したい時は戻り値returnを使えばいいのである。
(それにしてもSwiftは型にこだわるなぁ・・・)
引数と戻り値の組み合わせる
引数と戻り値を同時にも使えるようだ。
「引数を使って処理を実行し、呼び出し元に戻り値を返す関数」とのことだが、実際に見てみないとわかりづらい。
func sayHello(name:String) -> String {
return “こんにちは\(name)さん“
}
let a = sayHello(name:“takeshi”)
こんな感じに引数としてnameをつかいつつ、その結果を定数aに代入してみた。
定数aには こんにちはtakeshiさん と代入されている。
外部引数
以下のようにすると、内部で使う引数と外部にみられる引数を変えることができる。
func gaibuhikisuu(name a: String, name b: String, name c: String) -> String {
return “こんにちは\(a)と\(b)と\(c)さん“
}
gaibuhikisuu(name:“taro”,name:“jiro”,name:“saburo”)
なるほど、便利。実行するときはnameだけでいいということだね?順番にa,b,cに割り当てられていくという認識でいいのかな。
ただ、この例だとイマイチ使う理由がわからないかもしれない。
func gaibuhikisuu(name kanako: String, name maki: String, name shiori: String) -> String {
return “こんにちは\(kanako)と\(maki)と\(shioiri)さん“
}
gaibuhikisuu(name:“taro”,name:“jiro”,name:“saburo”)
内部で因数として使っていた文字列が個人情報を含むような場合、それを隠すために外部因数を使うことはあるのではないか。
これは予想でしかないけど。おそらくそうだ。
まだ関数は続くが、残りは次回。今日はここまで。
コメント