arrays - 新手:在结构中引用和初始化结构元素
问题描述
好的,这里是超级新手 Swift 学习者,我确信这是一个简单的问题,由于某种原因,我无法理解。
在下面的代码中,我创建了一个(非常)简单的地址簿结构,只是为了了解如何引用和初始化各种元素,尤其是结构中的结构。我做错了什么,有没有更好的方法来写这个?我收到错误(使用 Swift Playground)。
最后三行的错误:
实例成员 'page' 不能用于类型 'AddressBookStruct'
实例成员 'subscript' 不能用于类型 '[AddressPageStruct]'。
另外,当我设置var page = [AddressBookStrcut]
我得到错误:
类型名称后的预期成员名称或构造函数调用
提前感谢您的理解推动。:)
struct AddressPageStruct {
let firstName: String
let lastName: String
let cellPhone: Int
init(f: String, l:String, c:Int) {
firstName = f
lastName = l
cellPhone = c
}
}
struct AddressBookStruct {
let color: String
let size: String
var page = [AddressPageStruct]
}
var littleBlackBook = AddressBookStruct.self
littleBlackBook.init(color: "Black", size: "Little")
littleBlackBook.page[0].cellPhone = 6191234567
littleBlackBook.page[0].firstName = "Bob"
littleBlackBook.page[0].lastName = "Smith"
解决方案
结构是值类型,请检查这个。 swift语言中的结构与类,
你不能制作这个 littleBlackBook.page[0].cellPhone,因为 cellPhone 是常量,你使用 let,而不是使用构造函数,我也将页面更改为 AddressPageStruct 的空数组
import Cocoa
struct AddressPageStruct {
let firstName: String
let lastName: String
let cellPhone: Int
init(f: String, l:String, c:Int) {
firstName = f
lastName = l
cellPhone = c
}
}
struct AddressBookStruct {
let color: String
let size: String
var page = [AddressPageStruct]()
}
var littleBlackBook = AddressBookStruct(color: "Black", size: "Little")
littleBlackBook.page.append(AddressPageStruct(f: "Bob", l: "Smith", c: 6191234567))
print(littleBlackBook.page)
推荐阅读
- django - zsh:找不到命令:virtualenv
- list - 试图在无关文件中找到最小数字并打印它
- php - 如何修复“WP_Term 类的对象无法转换为字符串”?
- csv - 计算 Google Earth Engine 中的像素面积以进行图像收集,然后将值导出为 CSV
- python - 从 apiclient 导入发现 ImportError:没有名为 apiclient 的模块
- java - 如何从流中删除对象
- sql - 仅选择 seqnum 为特定值的行
- css - 覆盖 JQXWidget css 样式不起作用
- c++ - 如何使用单独文件中的派生类访问朋友函数对象?
- google-apps-script - 如何在 google doc 中为不连续的段落添加序号?