Swift hello world!Swift快速入门教程

2020-01-08 22:46:58王冬梅

复制代码
var optionalString: String? = "Hello"
optionalString == nil

 

var optionalName: String? = "John Appleseed"
var greeting = "Hello!"
if let name = optionalName {
    greeting = "Hello, (name)"
}

 

练习:把optionalName改成nil,greeting会是什么?添加一个else语句,当optionalName
是nil时给greeting赋一个不同的值。

如果变量的可选值是nil,条件会判断为false,大括号中的代码会被跳过。如果不是nil,会将值赋给let后面的常量,这样代码块中就可以使用这个值了。

switch支持任意类型的数据以及各种比较操作——不仅仅是整数以及测试相等。

复制代码
let vegetable = "red pepper"
switch vegetable {
case "celery":
    let vegetableComment = "Add some raisins and make ants on a log."
case "cucumber", "watercress":
    let vegetableComment = "That would make a good tea sandwich."
case let x where x.hasSuffix("pepper"):
    let vegetableComment = "Is it a spicy (x)?"
default:
    let vegetableComment = "Everything tastes good in soup."
}

 

练习:删除default语句,看看会有什么错误?

运行switch中匹配到的子句之后,程序会退出switch语句,并不会继续向下运行,所以不需要在每个子句结尾写break。

你可以使用for-in来遍历字典,需要两个变量来表示每个键值对。

复制代码
let interestingNumbers = [
    "Prime": [2, 3, 5, 7, 11, 13],
    "Fibonacci": [1, 1, 2, 3, 5, 8],
    "Square": [1, 4, 9, 16, 25],
]
var largest = 0
for (kind, numbers) in interestingNumbers {
    for number in numbers {
        if number > largest {
            largest = number
        }
    }
}
largest

 

练习:添加另一个变量来记录哪种类型的数字是最大的。