最終更新日: 2026-07-26
TOP(About this memo)) > 一覧(Swift) > 導入
{ (引数) -> 戻り値の型 in 処理 } という書き方。(引数)(戻り値の型){処理} のような書き方でも良いのではと感じた。-> を使うため、戻り値や引数が関数型の場合に -> が連続し、やや読みづらく感じる。protocol Animal {
func sound()
}
struct Dog: Animal {
func sound() {
print("bow wow")
}
}
var pet1 = Dog()
// var pet1: Animal = Dog() // これも上記と同義
// var pet1: Animal { Dog() } // なぜかこれも動作した(オンラインの実行環境)。これは変数ではなく計算プロパティという理解で、クラスや構造体の中でしか書けないと思っていたのだが…
pet1.sound() // bow wow
struct ContentView: View {
/* var body: some View {
Text("Hello, World!")
} */
var body: Text = Text("Hello, World!") // Text構造体はViewに準拠していないように(コードを読むと)見えるが、これでコンパイルが通る理由がわからない。
}
List<Widget> で保持しており構造が把握しやすいが、SwiftのVStackは内部でアトリビュートによる変換を行っていたり、List構造ではなくTupleViewのような構造を使っているため、ジェネリクスを多用した複雑な構造になっている。cmd + a で全選択して ctrl + icommand + option + p で実行するとプレビューが表示される。command + r で実行するとシミュレーターが起動する。