References: The Swift Programming Language
某程序员对书法十分感兴趣,退休后决定在这方面有所建树。于是花重金购买了上等的文房四宝。一日,饭后突生雅兴,一番磨墨拟纸,并点上了上好的檀香,颇有王羲之风范,又具颜真卿气势,定神片刻,泼墨挥毫,郑重地写下一行字: hello world
。
print("Hello, World")
定义变量用 var
,常量用 let
。
var myVariable = 42 myVariable = 50 let myConstant = 42
常量只能赋值一次,不用必须在声明的时候去赋值。
编译器会自动推断常量和变量的类型,但是如果推断不出来(比如说没有初始值等),就需要声明类型。
let helloTalk : String helloTalk = 1 // 会报错 helloTalk = "helloTalk"
Swift的值不会隐式被转为其他类型
let widthFloat = 93.33 // 自动推断 为 Double let width : Int = widthFloat // 把 Double 赋值给 Int,会报错 let widthLabel = label + String(width) // 把值转换成字符串还可以这样: /(ValueName) let widthString = "width: /(width)."
let emptyArray = [String]() let emptyDictionary = [String: Float]() // 或者 let emptyArray = [] let emptyDictionary = [:]
let persons = ["person1","person2"]
for personString in persons {
print(personString)
}
// 遍历字典
let dict = [
"name" : "Joke",
"age" : 16
] as [String : Any]
for (key,value) in dict {
print("/(key) : /(value)")
}
if 2>1 {
print("2 大于 1")
}else{
print("2 还是大于 1 啊")
}
if
后面必须是布尔表达式,如果是一个值的话不会隐式的与 0 比较。
let vegetable = "red pepper"
switch vegetable {
case "celery":
print("Add some raisins and make ants on a log.")
case "cucumber", "watercress":
print("That would make a good tea sandwich.")
case let x where x.hasSuffix("pepper"):
print("Is it a spicy /(x)?")
default:
print("Everything tastes good in soup.")
}
switch
不仅支持基本数据类型。另外Swift中的 switch
语法可以省略 break
。但是不能省略 default
,会报 Switch must be exhaustive, consider adding a default clause
的编译错误。
var i = 1
while i<100 {
i += 1
}
// 或者
var i = 1
repeat{
i += 1
}while i < 100