- 公開日: 2019年01月18日
【Swift入門】Swift文法を楽しく理解しよう - 関数
Swift初学者にとって最初の難関とも言える『関数』。
Webや参考書を読んでも、ちょっとイメージしにくいですよね。
今回はそんな 関数 をやさしく解説。
関数、好きになって下さい!
本稿で使用する Swift のバージョン: Swift 4.2.1
【Swift入門】Swift文法を楽しく理解しよう - 関数
関数とは
関数は、特定の処理プログラムをコンパクトに扱いやすくするテクニックの一つで、 Swiftに限らず Python や Java、PHPに Ruby などほとんどのプログラミング言語で使用されています。
機能的で便利に見える 『関数』 ですが、文法上はチョット複雑になり、プログラミング初心者にとっては分かりにくい機能と言われますね。そこでまず文法やコードから関数を学習するのではなく イメージ から学習すると案外分かりやすかったりします。
プログラミング言語の関数の解説は難しいですが、エクセルの 関数 はどうでしょうか? sum() や today() といったエクセル関数使われたことありませんか?足し算の sum() では セル1 + セル2 + セル3 + ・・・・ と複数のセルを記述しないといけない手間を sum() 関数を使うことでスッキリ省いてくれます。 today() の場合も OS からの時間取得、表示といったプログラムを単なる today() という一言で済ましてくれます。Swiftで扱う 関数 もイメージ的にはエクセルの関数と一緒で、便利で効率的な機能。
また単に便利というだけでなく、Swiftの場合はアプリ開発を行う上で関数は必須項目となっています。理由は次の「関数が必要な理由」でご紹介させて頂きますね。
関数が必要な理由
アプリ開発時に使用するメソッドを扱う上で
Swiftを用いてアプリ開発を行う場合、 XCodeを使うと思います。XCodeでアプリを開発する際、ストーリーボード上に設置した UI部品を ViewController.swift というプログラムファイルで制御。この時に 関数と似た メソッド が登場します。メソッドの理解には関数の知識が欠かせないでしょう。
開発を効率的にするために
エクセルの sum() のように関数を使うと効率的です。sum() は予め定められた関数になりますが、特定の処理プログラムを Swift で書いて関数化することも可能。このことによって、チーム内の誰かが作成した処理プログラムを、他の人も kansuu() のように一言でその機能を使えるようになります。
例えば、 キログラムをグラムに換算するプログラムを考えたとします。他の人もこの便利な換算プログラムを使おうと考えた時、詳しい計算式が分からなくても、 kg_to_g()関数を使えばだれでも キログラムをグラムに変換可能。この計算式は簡単ですが、複雑な計算も同じ要領で機能をシェアできますね。
func kg_to_g(kg:Float) -> Float {
let weight = kg*1000
return weight
}
print(kg_to_g(kg:0.2))
関数コードのご説明
Swiftの関数を簡単なコードを使ってご説明します。
func greet(userName: String) -> String {
let greeting = "Welcome, " + userName + " !!"
return greeting
}
print(greet(userName: "Oshima"))
Swiftコードで関数を意味するキーワードは、一行目の最初に書かれている func です。
func の後の greet は関数名を意味し、このあと greet() として使えるようになります。
greetの () 内には、引数といって 関数で処理させる値の定数を設定、今回は userNameをセット。そして -> は、関数の処理結果のデータ型を意味します。今回は処理前も処理後も同じ 文字列型(String)となっています。
2行目の
let greeting = "Welcome, " + userName + " !!"
というのは、今回の関数で処理させる内容を定数 greeting に記録。
そして return greeting として関数の処理結果を出力します。
最終行の print(greet(userName: "Oshima")) は、関数 greet を引数: おおしま で使用する内容。
結果的に、『Welcome, Oshima !!』と出力されます。
このように関数には、引数や定数、変数、データ型と Swift の基本文法が多数登場してきますね。
\Webサイト担当者としてのスキルが身に付く!!/
まとめ
関数の学習領域は広く、今回は最初の一歩といった部分をご紹介させて頂きました。実際に XCode上で関数を作成しようと思うと「フレームワーク」の作成が選択されますし、 UI部品を制御する ViewController.swift では関数ではなくメソッドとして関数プログラムが使われます。
アプリ開発を成功させる、Swiftスキルを習得する上でも 『関数』 の理解は欠かせないのですが、独学では分からなくてイライラしたりしますよね。そんな時は 『オンライン × マンツーマン』で定評のある CodeCamp を参考にしてみませんか?今までの心労がウソみたいにスッキリするかもしれませんよ。
- この記事を書いた人
- オシママサラ