首页 > 解决方案 > 如何将变量的值作为参数传递给函数?

问题描述

struct ContentView: View {
    @State var theme: Int = 1
    var emojis = getEmojis(theme)

主题不能传递给函数。不能在属性初始化器中使用实例成员“主题”;属性初始化程序在“self”可用之前运行 我对 swift 不熟悉,当我编写代码时,我发现我无法将 var 的值传递给我编写的函数。请帮助我。我可以将 1 或 2 或 3 传递给函数,但我不能将 var 的值传递给函数。

标签: swift

解决方案


这取决于你想要做什么:)

如果您尝试初始化emojis为 的值getEmojis,但它们的值将来会有所不同(您希望emojis独立于 的值进行修改getEmojis),请使用lazy var

struct ContentView: View {
    @State var theme: Int = 1
    lazy var emojis = getEmojis(theme)
    // ...
}

如果emojis应该始终保持 的值getEmojis,请使用计算属性,就像@Raja Kishan 指出的那样


推荐阅读