【问题标题】:How do i init a tuple property from a class in swift?我如何从一个类中快速初始化一个元组属性?
【发布时间】:2021-11-05 15:29:20
【问题描述】:

我的班级有这个属性

var service = (String, Int, Bool)

我需要使用带有 init 的构造函数,所以我有下一个代码

init()
{
  self.service(1) = "Fix PC"
  self.service(2) = 400
  self.service(3) = false
}

在初始化代码的每一行我都收到了下一条消息

没有更多上下文,表达式的类型是模棱两可的

,我该如何解决?

我是学生,最近在用swift,还是找不到解决办法

【问题讨论】:

  • 你将如何初始化一个不是存储属性的薄纱?
  • 你的意思可能是service.0service.1service.2

标签: swift tuples


【解决方案1】:

这不是给元组赋值的方法。您需要将元组作为一个整体进行分配,不能一一分配其属性。

var service: (String, Int, Bool)

init() {
    service = ("Fix PC", 400, false)
}

初始化元组后,您可以一一更新其成员,但是您的语法错误,元组成员访问是使用 . 完成的,而不是 ()

service.0 = "Fix Mac"

此外,您应该只使用元组作为临时存储,例如,您应该使用具有 3 个单独属性的自定义类型。

struct Service {
    let name: String
    let value: Int
    let bool: Bool
}

let service = Service(name: "Fix PC", value: 400, bool: false)

【讨论】:

  • 谢谢!我知道它们应该用作临时存储,但它是用于学校作业的,他们希望我们像这样使用它
  • 如果这回答了你的问题,请点击它旁边的复选标记(也许可以投票)。
猜你喜欢
  • 1970-01-01
  • 2021-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多