Swift学习:Swift by Tutorials 第一章概要

  1. 变量
  • 命名方式: var a = 1或者var a: Int = 1
  • 命名可以不指定类型,因为Swift可推测变量类型。(建议不需标明类型)
  • 一般变量声明var和常量声明let
  • 禁止变量进行默认类型转换,比如var greeting = "Hello",然后greeting = 5
  1. 字符串
  • 对于字符串的操作、函数并引入其他库来使用函数。
  1. 分号
  • 分号可加可不加,一般情况下效果由换行替代。但如果语句为同一行则必须加分号来间隔。(建议不需加上分号)
  1. 数字类型与转换
  • Swift一般会根据输入的数值大小自动为变量选择最为合适的类型。
  • 可以用_来作为千位分隔符:let million 1_000_000
  • 所有数值类型的转换都必须明确地表示。Swift库内函数一般进行操作的两个数都是同样类型。即使是Int乘以Double类型也必须明确标明,如Double(radius) * Double(radius) * pi
  • cmd+click可以查看库函数。
  • 另外一个Swift的安全措施是大小检查。如var overflow = Int.max + 1,很多编程语言的答案是一个负数,但Swift会当做Runtime error
  1. 布尔类型
  • 不能用非零数字当做true,在Swift中,必须使用Bool类型,否则库函数不接受。
  1. 元组
  • 元组的声明:var address = (1, "A")
    显式声明:var address: (Int, String) = (1, "A")
    元组的元素的使用:println(address.0)
  • Swift的安全措施:调用元组中不存在的元素会导致编译错误。
  • 可以将元组中的元素提取出来成单个元素:let (house, street) = adress
  • 可以给元组中的元素命名:var address = (number: 1, street: "A")
    使用命名的元素:println(address.number)
  • 打印的时候可以使用简化的语句:pringln("I live at \(house), \(street)"),这种方式成为string interpolation(字符串式插值)。
    或者使用:let str = I live at \(house), \(street),然后println(str)。
  1. 循环
  • for循环语法:for i in 1...5 {}...是闭区间操作符,还可以使用..<,这个操作符是半开半闭区间操作符。
  • 1...5是一个独立结构,可以使用var range = 1...5for i in range{...}来进行循环。这里range的结构实际上是:var range = Range(start: 1, end: 6)
  • range可以不仅仅是Range结构类型,还可以是数组、键-值对,也可以是String,如for i in "Swift" { println(i) }。这些类型都是可以枚举的。
  • while循环:
var i = 0
while i < 5 {
  println("\(i) - \(greeting)")
  i++
}
  1. if语句
if i ==5 {
  println("...")
} else {
  println("...")
}
  • if语句的判断条件必须是Bool类型。
  • if语句即使只有一行代码,也必须用大括号括起来。
  1. switch语句
  • 语法:
var direction = "up"
switch direction {
  case "down": 
    println(...)
  case "up": 
    println(...)
  default: 
    println(...)
}
  • Swift中的Switch语句,可以使用任意类型而不是基本类来匹配,并且可以省略break关键字。
  • 如果没有加上default关键字,则Swift会报错,并提醒最好加上default语句。
  • case语句可以这样使用:
case: "down", "up": 
case 1..<10: 

还可以将匹配条件换成元组。

你可能感兴趣的:(Swift学习:Swift by Tutorials 第一章概要)