Swiftの関数型と型推論を活用した設計を解説!初心者でもわかるSwiftの柔軟な関数の使い方
生徒
「Swiftで関数を変数みたいに扱えるって聞いたんですけど、どういうことですか?」
先生
「それは関数型と呼ばれるSwiftの機能ですね。関数そのものを変数に代入したり、引数として渡したりできるんですよ。」
生徒
「なんだか難しそう…。型推論ってのも関係あるんですか?」
先生
「はい、Swiftの型推論があるからこそ、関数型もスッキリ使えるんです。それでは一緒に学んでいきましょう!」
1. Swiftの関数型とは?
関数型(Function Type)とは、「関数の形を持つ型」のことです。例えば、(Int, Int) -> Intは、「2つのIntを受け取って、Intを返す関数」を表す型です。
Swiftでは、関数を変数として扱ったり、引数として渡したり、戻り値として返したりすることができます。
func add(_ a: Int, _ b: Int) -> Int {
return a + b
}
let functionVariable: (Int, Int) -> Int = add
print(functionVariable(3, 4))
7
ここではadd関数をfunctionVariableという変数に代入しています。このように、関数をそのまま変数として扱えるのが関数型の特徴です。
2. Swiftの型推論とは?
型推論(Type Inference)とは、Swiftが自動で変数や定数の型を判断してくれる仕組みです。型を省略しても、文脈から「これはこの型だな」と判断してくれます。
let number = 10 // Int型と推論
let name = "Swift" // String型と推論
このように、わざわざ: Intや: Stringと書かなくても、Swiftが自動的に型を決めてくれるんです。
3. 関数型と型推論の組み合わせ
関数型と型推論を組み合わせることで、よりシンプルで柔軟なコードが書けます。たとえば、関数を引数に取る処理を書くとき、型を省略してもSwiftが正しく解釈してくれます。
func calculate(_ a: Int, _ b: Int, using operation: (Int, Int) -> Int) -> Int {
return operation(a, b)
}
let result = calculate(5, 3, using: { $0 * $1 })
print(result)
15
このコードでは、operation引数に「掛け算する無名関数(クロージャ)」を渡しています。型は省略されていますが、Swiftが文脈から判断してくれます。
4. 無名関数(クロージャ)と関数型
関数型を使うとき、無名関数(名前のない関数)を使う場面が多くあります。Swiftではこれを「クロージャ」と呼びます。
let divide: (Int, Int) -> Int = { (a, b) in
return a / b
}
print(divide(10, 2))
5
このように、{ (a, b) in ... }という形で関数を作って、それを変数に代入できます。
Swiftでは、型推論のおかげで、クロージャの型も省略可能です。
5. 関数を引数として使うメリット
関数を引数にできると、処理の内容を「後から変更できる」ようになります。これにより、再利用性の高いコードや、柔軟な設計が可能になります。
func greetUser(name: String, formatter: (String) -> String) {
let message = formatter(name)
print(message)
}
greetUser(name: "花子", formatter: { name in
return "こんにちは、\(name)さん!"
})
こんにちは、花子さん!
このように、formatterに渡す関数を変更することで、あいさつ文の出力をカスタマイズできます。
6. 型エイリアスでコードをもっと読みやすく
関数型の定義が長くなって読みにくいときは、typealias(型エイリアス)を使って短くまとめることができます。
typealias Operation = (Int, Int) -> Int
func execute(_ a: Int, _ b: Int, op: Operation) -> Int {
return op(a, b)
}
let sum: Operation = { $0 + $1 }
print(execute(2, 3, op: sum))
5
Operationという名前をつけたことで、読みやすさがグッと上がりました。
Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略
Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略
「iPhoneアプリを作りたいけれど、Macを持っていないから諦めている」そんな方のための画期的な入門講座です。実は、プログラミングの本質を学ぶのに高価な機材は必要ありません。本講座では、Windowsパソコンを使用し、クラウド環境を活用してAppleの最新言語Swift(スウィフト)の基礎を最短距離でマスターします。
Windowsで実現する開発環境
【つくるもの】
ブラウザ上で動作する「スマート・計算ツール」や「データ判定プログラム」をゼロから作成します。変数の扱いや条件分岐など、iPhoneアプリの内部で動くロジックを自分の手で構築する感動を体験してください。
【開発環境】
ブラウザだけでSwiftが動くプロ仕様のオンラインエディタ(Replit等)を使用します。面倒な設定は一切不要。今あるWindows PCで、プロのエンジニアと同じコードを書き始められます。
この60分で得られる3つの理解
OSの壁を越え、クラウドを活用してスマートに学習を開始する「現代的な開発スタイル」を習得します。
iPhoneアプリ特有のデータの扱い方や、Appleが推奨する「安全で美しいコード」の書き方を学びます。
将来的にiOSエンジニアとして副業・転職するために必要な準備や、Mac選びのポイントを伝授します。
※本講座は、将来的にiPhoneアプリ開発で収益化や転職を目指したい未経験者のためのエントリー講座です。マンツーマン形式により、Windows環境ならではの疑問にもその場でお答えし、あなたの理解度に合わせて進行します。
Windowsで始めるiPhoneアプリ開発入門