swift - 是否可以在 swift 类中编写变异函数?
问题描述
我可以在结构中编写变异函数,但不能在课堂上编写。
struct Stack {
public private(set) var items = [Int]() // Empty items array
mutating func push(_ item: Int) {
items.append(item)
}
mutating func pop() -> Int? {
if !items.isEmpty {
return items.removeLast()
}
return nil
}
}
解决方案
在swift中,类是引用类型,而结构和枚举是值类型。默认情况下,值类型的属性不能在其实例方法中修改。为了修改值类型的属性,您必须在实例方法中使用 mutating 关键字。使用此关键字,您的方法就可以在方法实现结束时改变属性的值并将其写回原始结构。
推荐阅读
- angular - 在 ngFor 中有条件地应用 flex 布局
- google-cloud-platform - 无法在构建触发器设置中查看 GitHub 存储库列表
- javascript - JS反转概率
- r - 无法加载 Rcpp 包
- php - 使用数据库中的值检查变量值
- python - python pandas如何通过其他数据框扩展数据框
- powershell - 合并多个 csv 文件,忽略元数据行并处理不同的引用
- android - 一个可跨越的字符串是高亮的,另一个不是
- mule - AnypointPoint-mq 订阅者和 AnypointPoint mq 消费者之间的区别
- c# - 将多行合并为单行并在DB2中使用sql、Function或...填充缺失值