我有一个向下函数,我希望内容带有一个默认值,我希望这个函数开始工作:
func viewFunction<Content: View>(content: Content = { Text("Hello!") }) -> some View {
return content
}我知道,基于这个原因,我可以拆分函数,但是我希望函数带有内容的默认值,而且我也不想有两个函数。
我的目标:我希望能够以:viewFunction()的形式使用我的函数
更新:
Swift没有通用占位符的默认值.
发布于 2022-01-01 20:47:16
最可能的方法是拥有两个函数。就像下行代码一样:
PS:我们不能使用带有泛型类型默认值的函数.
struct ContentView: View {
var body: some View {
viewFunction(content: Text("Hello, world!"))
viewFunction()
}
}
func viewFunction<Content: View>(content: Content) -> some View {
return content
}
func viewFunction() -> some View {
return Text("Hello, world!")
}发布于 2021-03-03 14:04:21
简单地说是:
func viewFunction<Content: View>(content: () -> Content = { Text("hello") as! Content }) -> some View {
return content()
}发布于 2021-03-03 16:24:50
我喜欢as!-casting的答案,因为它不需要生成代码就可以保存文档。
但是一般的解决方案是重载,因为Swift没有通用占位符的默认设置。
注意:这个问题不是SwiftUI特有的.
func viewFunction<Content: View>(content: Content) -> some View { content }
func viewFunction() -> some View {
viewFunction(content: Text("Hello!"))
}https://stackoverflow.com/questions/66458184
复制相似问题