self.name = Swift 中的名称。我不明白为什么需要这些代码
self.name = name in Swift . I don't understand why this codes are needed
class person {
var name : String
init(name: String) {
self.name = name
}
}
我正在学习Swiftclass章节
我不明白为什么需要 init(name:String) self.name = name
代码
此代码的用途是什么。
我声明了var name: String
再次 init(name: String)
,为什么需要 self.name = name
?
var name
和 self.name = name
有什么区别?
研究称为 可变范围 的东西。在您的代码中 - init
.
中有两个 "name variables - a class (or instance) variable and a " 参数
后者 - init(name:)
仅在 初始化函数中使用,这意味着该实例没有 no 名称self.name = name
创建实例后。
只要您的 class person
实例可用,前者就可用。
要进一步解释,试试这个。将您的代码更改为:
class Person {
var myName : String
var myOtherName : String
init(name: String) {
self.myName = name
}
}
在您的应用或视图控制器中,执行此操作:
let myPerson = Person(name: "john")
print(myPerson.myName) // prints "jihoon"
print(myPerson.myOtherName) // prints nothing
print(myPerson.name) // generates a build error because name doesn't exist
最后一点 - 在 Swift class 中名称是大写的,所以最好的名称是 Person
,而不是 person
。
Classes
和 structures
必须在创建该 class 或结构的实例时将其所有存储的属性设置为适当的初始值。存储的属性不能处于不确定状态。
class person {
var name : String // undetrmined state
init(name: String) {
self.name = name
}
}
class person2 {
var name : String = "default value" // detrmined state
// Now these intializer are not optional. You can use these initializer or not.
init(name: String) {
self.name = name
}
init() {
}
}
// Aother example for optional stored property
class person3 {
var name : String? // detrmined state, because default value for optional is nil
// Now these intializer are not optional. You can use these initializer or not.
init(name: String) {
self.name = name
}
init() {
}
}
有关更多信息,请阅读这篇文章 Apple Doc
class person {
var name : String
init(name: String) {
self.name = name
}
}
我正在学习Swiftclass章节
我不明白为什么需要 init(name:String) self.name = name
代码
此代码的用途是什么。
我声明了var name: String
再次 init(name: String)
,为什么需要 self.name = name
?
var name
和 self.name = name
有什么区别?
研究称为 可变范围 的东西。在您的代码中 - init
.
后者 - init(name:)
仅在 初始化函数中使用,这意味着该实例没有 no 名称self.name = name
创建实例后。
只要您的 class person
实例可用,前者就可用。
要进一步解释,试试这个。将您的代码更改为:
class Person {
var myName : String
var myOtherName : String
init(name: String) {
self.myName = name
}
}
在您的应用或视图控制器中,执行此操作:
let myPerson = Person(name: "john")
print(myPerson.myName) // prints "jihoon"
print(myPerson.myOtherName) // prints nothing
print(myPerson.name) // generates a build error because name doesn't exist
最后一点 - 在 Swift class 中名称是大写的,所以最好的名称是 Person
,而不是 person
。
Classes
和 structures
必须在创建该 class 或结构的实例时将其所有存储的属性设置为适当的初始值。存储的属性不能处于不确定状态。
class person {
var name : String // undetrmined state
init(name: String) {
self.name = name
}
}
class person2 {
var name : String = "default value" // detrmined state
// Now these intializer are not optional. You can use these initializer or not.
init(name: String) {
self.name = name
}
init() {
}
}
// Aother example for optional stored property
class person3 {
var name : String? // detrmined state, because default value for optional is nil
// Now these intializer are not optional. You can use these initializer or not.
init(name: String) {
self.name = name
}
init() {
}
}
有关更多信息,请阅读这篇文章 Apple Doc