访问成员struct变量的正确语法是什么?我现在正在尝试这样:
struct one {
var name:String = "Ric"
var address:String = "Lee"
}
one.name
但最后一行产生错误:
' one.Type'没有名为' name'
的成员
如何在我的struct上访问变量?
答案 0 :(得分:9)
看起来您定义了一个结构,但没有创建它的实例。如果创建实例,则可以访问其名称和地址属性。
struct one {
var name: String = "Ric"
var address: String = "Lee"
}
var x = one()
x.name
可能会让人感到困惑,因为您可以在定义中设置默认值,这可能会使您看起来像是在实例化某些内容。
答案 1 :(得分:3)
声明结构时,为了使用它,您必须创建一个实例。 one
结构是一种类型,就像Int
类型一样,为了使用它,你必须创建一个Int
类型的变量:
var myInt:Int = 10
类似地,一旦定义了结构,就可以创建该结构的实例并分配给变量:
var myStruct = one()
此时您可以访问实例属性和方法:
println(myStruct.name)
如果您不需要实例,那么您应该将属性和方法声明为static
:
struct one {
static var name: String = "Ric"
static var address: String = "Lee"
}
并且这是唯一可以使用类型引用属性和调用方法而不是类型的实例的方法:
println(one.name)
旁注:按照惯例,类和结构(更常见的是任何类型)应该用大写的第一个字符命名。