自学Swift(一)

苹果官方只有英文教程 边学英文边学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)”
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值