はじめに
今回はとある課題でfunctionを使用する上でつまづく所が多かった為、この機会に学び直す事にしたのでまとめてみました!
環境
・ /macOS Big Sur 11.3
・ SwiftUI : 2.0
・ Xcode : 12.4
functionの基本的な使用
Swiftで関数を使用する場合主に”関数名”、”仮引数”、”型”の指定をして使用します。
func 関数名 (仮引数: 型) -> (型) {
コード.....
}
とこんな感じがオーソドックスかと。
また関数名、仮引数名ともローワーキャメルケースで書くことが推奨されています。
(キャメルケースについてはコチラをご覧ください。)
仮数名や型はオプションなので省略することも可能です。つまり最小の実装は
func 関数名() {
コード.....
}
となります。
では早速SwiftUIで使用してみましょう。
エラーが出ました!これはSwiftUIではViewをコードで生成させる為、Viewを記載する箇所がありますが、その中でfunncは使用しないで下さいね、と言うエラーです。
なのでこのようにViewの外に書いてあげればOK!
続いてfunctionを使用してみましょう。
@State var showHogeText = false
func hogehoge () {
self.showHogeText.toggle()
}
Button(action: {
hogehoge()
}) {
Text("hogehogeボタン")
}
Text(showHogeText ? "ボタンを押した後" : "ボタンを押す前")
.foregroundColor(showHogeText ? .red : .black)
}
}
上記のコードを実行するとGifのようなViewを生成することができます。
値を返すreturn
上記のように値を返さない関数は仮引数や型を省略するか -> ()とするか、-> voidとします。
ここでは値を返す事も試してみます。
func num (n: Int) -> Int {
total += n
return Int(total)
}
この様値を返す時はreturnを使用します。
そして上記の関数の使用方法は
struct funcTtaining: View {
@State var total = 0
var body: some View {
VStack{
Button(action: {
total = num(n: 1)
}) {
Text("ボタン")
}
Text("\(String(total))")
}
}
}
で使用できます。
ここではボタンを押すとnum関数の仮引数nに1が指定されているのでその1が関数内でtotalに足されて、足されたtotalがreturnで返され、button内のactionでtotalに渡される流れとなります。
まとめ
functionの基本的な使い方を整理してみました。
この記事は引き続きfunctionに関して気づいた点があれば随時追記していこうと思います。