gpt4 book ai didi

swift - 二元运算符 '+=' 不能应用于类型的操作数。

转载 作者:行者123 更新时间:2023-11-28 05:53:09 26 4
gpt4 key购买 nike

我正在练习一些代码,提出了一些问题。

这是代码

class Food {
let name:String
var fruits:[Fruits]?

init(name:String) {
self.name = name
}

}


class Fruits {
let name:String
let capacity:Int

init(name:String, capacity:Int) {
self.name = name
self.capacity = capacity
}
}


var macFood: Food = Food(name: "macFood")
macFood.fruits
macFood.fruits = [Fruits(name: "Apple", capacity: 1), Fruits(name: "Banana", capacity: 2)]
macFood
macFood.fruits

macFood.fruits += [Fruits(name: "Grape", capacity: 3)]

所有代码都很好,打印也很好,但最后一行带来了问题。

我以为 macFood.fruits 是数组。

因为,ma​​cFood.fruits = [Fruits(name: "Apple", capacity: 1), Fruits(name: "Banana", capacity: 2)] 有效。

所以我想我可以使用“+=”运算符添加其他元素。

但它在最后一行崩溃了,ma​​cFood.fruits += [Fruits(name: "Grape", capacity: 3)]

错误信息是

'二元运算符 '+=' 不能应用于 '[Fruits] 类型的操作数?'和“[水果]”macFood.fruits += [Fruits(name: "Grape", capacity: 3)]'

'需要一个类型为'(inout R, S)'的参数列表macFood.fruits += [Fruits(name: "Grape", capacity: 3)]'

问题

  1. 崩溃的原因是什么?

  2. macFood.fruits 是数组吗?

    2-1。如果是,我可以在数组中添加其他元素吗?

    2-2。如果不是,为什么不是这个数组?

    2-1-1。如果是和是,我如何在数组中添加另一个元素?

    2-1-2。如果是但不是,为什么我不能在数组中添加元素?

谢谢!

最佳答案

  1. 原因是您试图对两个不同类型的对象使用 +=,一个是水果数组,另一个是可选的([Fruits]? 表示它是可选的)。

  2. 是的,它是一个数组。

    2.1 是的

    2.1.1 您可以使用yourArray.append(object)

  3. 添加其他元素

关于swift - 二元运算符 '+=' 不能应用于类型的操作数。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52203647/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com