我知道Swift假定您在使用已知属性或方法名称时引用当前实例的属性或方法;但是,我想确保我理解self
的使用,因为它在Swift之前的代码中被大量使用。
class School {
var numberOfBooks = 0
var numberofPens = 0
func buyBooks() {
self.numberOfBooks++
}
func buyPens() {
self.numberOfPens++
}
func readyForSchool() {
if self.numberOfBooks && self.numberOfPens >= 1 {
println("I am ready for school")
} else {
println("I need to buy school materials")
}
}
}
var preparedForSchool = School()
preparedForSchool.buyBooks()
preparedForSchool.buyPens()
preparedForSchool.readyForSchool() \\returns "I am ready for school"
答案 0 :(得分:1)
看起来很好(IMO)。要更全面地了解Swift中的self
,请参阅此问题:What is "self" used for in Swift?。
答案 1 :(得分:1)
这是合理的,但我确实看到一个错误。这句话
if self.numberOfBooks && self.numberOfPens >= 1
......无效。 Swift不允许你将整数值视为布尔值。
if self.numberOfBooks
不合法,就像它在C中一样。在C,Objective-C,C ++和各种其他类C语言中,它们将被解释为“if self.numberOfBooks!= 0”.Swift强迫你成为然而,显而易见。你必须写
if self.numberOfBooks != 0
或
if self.numberOfBooks >= 1 && self.numberOfPens >= 1
或
if self.numberOfBooks != 0 && self.numberOfPens >= 1