swift - 如何将变量的值作为参数传递给函数?
问题描述
struct ContentView: View {
@State var theme: Int = 1
var emojis = getEmojis(theme)
主题不能传递给函数。不能在属性初始化器中使用实例成员“主题”;属性初始化程序在“self”可用之前运行 我对 swift 不熟悉,当我编写代码时,我发现我无法将 var 的值传递给我编写的函数。请帮助我。我可以将 1 或 2 或 3 传递给函数,但我不能将 var 的值传递给函数。
解决方案
这取决于你想要做什么:)
如果您尝试初始化emojis
为 的值getEmojis
,但它们的值将来会有所不同(您希望emojis
独立于 的值进行修改getEmojis
),请使用lazy var
struct ContentView: View {
@State var theme: Int = 1
lazy var emojis = getEmojis(theme)
// ...
}
如果emojis
应该始终保持 的值getEmojis
,请使用计算属性,就像@Raja Kishan 指出的那样
推荐阅读
- java - JPopupMenu 绘制了 JDesktopPane 的主要部分
- php - Laravel 6 使用错误密码登录会导致 file_put_contents 错误
- java - 将绘制的(和可编辑的)矩形添加到包含滑块和文本字段的网格数组
- java - 如何从 DynamoDb 获取价格列表
- javascript - 使用 AM/PM 将 Javscript 转换为 LocalTimeString HH:MM:SS 到 HH:MM
- java - Spring JPA - Hibernate:批量插入执行太多选择 nextval('sequence')
- flutter - sqflite 数据库被锁定颤动 - 警告数据库已被锁定
- java - 线程一创建就开始执行(多线程)
- javascript - 映射多个嵌套数组javascript
- bash - 如何使用 for 循环在 Bash 中发送电子邮件?