
语法教程上说,swift 中的结构体是需要运行一下才能跑起来的。但是下面这一段代码为什么可以把语句直接放在大括号里呢?
struct ContentView: View { var body: some View { VStack{ Text("Hello, world!") //直接放在了大括号里 .padding() Text("Hello, world!") //而且可以随意放很多个 .padding() } } } 请问:
谷歌了一下没找到相关答案,于是发来 V2 求助,谢谢各位的解答,好人一生平安~
1 ch3nz 2020-11-04 04:07:55 +08:00 VStack 是个 struct 完整的使用是这样的: ``` VStack(alignment: .center, spacing: nil, content: { Text("Placeholder") Text("Placeholder") }) ``` 所以 1 两个 Text 是参数 content 的值 2 外层 View 实例化的时候,它就实例化 3 content 的类型是 closure,所以不是 struct 有任意个参数,而是 content 可以是多个 closure 4 VStack 的定义中,content 被 @ViewBuilder 修饰 https://developer.apple.com/documentation/swiftui/viewbuilder |
2 FutherAll 2020-11-04 09:31:16 +08:00 Swift 为 SwiftUI 搞了一堆语言特性,感觉太臃肿了 |
4 ruzztok 2020-11-04 14:27:45 +08:00 我看完 swift 语法概览再看这个 hello world 也是懵 |
5 zhentivip 2021-03-16 12:08:55 +08:00 这个是界面语言,是基 swift 魔改的。 |
6 zzyyqq 2022-04-19 06:00:47 +08:00 感觉这个是借鉴了 react 写网页的思路。 乱搞! |