苹果官方只有英文教程 边学英文边学Swift吧…
按照传统标准 国际惯例。。。所有的语言上来第一件事情就是要打印出”hello word!” ,在swift 里 你只需要用一行代码就行了
println("Hello, world!")
如果之前开发过OC或者C的话 应该对这个语法非常熟悉,我们不需要添加某个library 或者是引用头文件,并且在全局的任何地方都可以作为程序的入口点,所以我们也并不需要一个main函数。
与OC最明显的区别就是我们不需要在结尾添加分号!
在Swift 里 用 let 来表示常量 用 var 来表示变量
var myVariable = 50
let myConstant = 42
在Swift中当你要赋值一个常量或者变量的时候 编译器会根据你的 vlaue 判断自动分配类型,所以通常你并不需要在声明的时候指定类型
let implicitInteger = 70
当然我们还是能用 :type 手动指定类型:
let explicitDouble: Double = 70
常量无法转换类型,当你需要赋值拼接两个不同类型的值的时候需要强制转换
let label = "The width is "
let width = 94
let widthLabel = label + String(width)
有种简单的方法可以让字符串中包含其他常量或者变量 +(xxx)
let apples = 3
let oranges = 5
let appleSummary = "I have \(apples) apples."
let fruitSummary = "I have \(apples + oranges) pieces of fruit.
创建数组和字典的方式
var arr = ["a", "b", "c", "d"]
shoppingList[1] = "e"
var dic = [
"key1": "v1",
"key2": "v2",
]
occupations["key3"] = "v3”
指定数组或者字典的类型使用 [type]
let emptyArray = [String]()
let emptyDictionary = [String: Float]()
注意在swift中 数组也是只能存放单一类型的
swift 使用 if 和 switch 作为条件语句 for-in , for , while,以及 do-while 作为循环语句 用一组{}来包含整个条件判断或者循环
下面我们来看下具体用法
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."
}
和OC不同的是 在Swift里 你可以在单个case里添加多个参数值 甚至可以加入条件判断,当一个case结束之后 swift会自动跳出循环 因此我们并不需要在每个case结束添加break
再来看看 for 语句
let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0
for score in individualScores {
if score > 50 {
teamScore += 3
} else {
teamScore += 1
}
}
println(teamScore)
var secondForLoop = 0
for var i = 0; i < 4; ++i {
secondForLoop += i
}
println(secondForLoop)”
我们可以看到 for 循环 for - in 和 if-else 的用法和OC一样 在创建临时变量的时候并不需要去指定类型
swift还提供了一个简单的方法 ..< 来指定索引循环的范围
var firstForLoop = 0
for i in 0..<4 {
firstForLoop += i
}
println(firstForLoop)”
在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
}
}
}
println(largest)
while 和 do…while 的用法与OC并无区别
var n = 2
while n < 100 {
n = n * 2
}
println(n)
var m = 2
do {
m = m * 2
} while m < 100
println(m)”