【发布时间】:2018-10-31 14:34:32
【问题描述】:
我刚刚开始使用 Swift,并且正在学习基础知识。我一直在玩 Playgrounds,在测试一些代码时遇到了一个错误。
//creating a Struct for humans
struct Human {
var firstName: String? = nil
var surName: String? = nil
var age: Int? = nil
var height: Int? = nil
}
var personA = Human()
personA.firstName = "Jake"
personA.surName = "-"
personA.age = 26
personA.height = 185
print (personA)
if (personA.age == 30) {
print("You're 30 years old")
} else {
print("You're not 30")
}
var personB = Human()
personB.firstName = "Andy"
personB.surName = "-"
personB.age = 24
personB.height = 180
print (personB)
if (personA.height > personB.height) { //error here
print("Person A is taller, he is \(personA.height ?? 1)cms tall")
} else {
print("not true")
}
谁能简单解释一下为什么我会收到错误消息?
【问题讨论】:
-
另外,只是一个旁注。在 Swift 中,你通常不会在 if 后面加上括号。
-
为什么所有结构成员都是可选的?实际上,我不认识任何不老不高的人类。将成员声明为非可选可以解决您的问题。
-
简单来说:
nil应该如何与其他数字进行比较并不明显。在排序列表中,nil应该排在第一位(暗示nil小于任何负数Int)。它应该出现在负数之后但在 0 之前吗?在 0 之后但在积极因素之前?毕竟是积极的?在某些情况下,这些变体中的每一个都可能有意义,因此它们不会为您选择并强制使用一个。他们让您决定如何处理nil。
标签: swift