swift语言是一种强类型语言(即必须指定变量和常量的类型),但是swift却有类型推断。在swift中,常量需要用let,变量需要用var。下面是swift的简单的常量和变量的定义过程。
//变量和常量的定义
let a = 99
var b:Int = 4
var weight:Float = 2.9
let v = 1_000_000;
var range = 1..<5//区间,包含1,但是不包括5.
var range2 = 1...5//即包含1,也包含5
//元组的定义和分解
var iata_pek = ("PEK","北京机场");//类似数组
print("编码:\(iata_pek.0),机场:\(iata_pek.1)");
var iata_pek2 = (code:"PEK",airport:"北京机场")//类似字典(其实,本质类似于数组中装的字典)
print("编码:\(iata_pek2.code),机场:\(iata_pek2.airport)")
let (code,airport) = iata_pek2//元组的分解
print("\(code),\(airport)")
let (_,air) = iata_pek2//元组的分解,通配符
print("\(air)")
//流程控制
1,循环
//for循环
//普通循环是显式申明的,需要添加var变量
for var index = 0;index<3;++index{
print("\(index)")
}
//for in快速迭代的方法变量是隐式申明的,不需要申明var类型
//一般
let animals = ["tiger","lion","leopad"];
for animal in animals{
print("\(animal)")
}
//区间
for i in 1..<5{
print("\(i)")
}
//字典遍历,以元祖的形式遍历
let d = ["PEK":"北京","SHA":"上海"]//以元组的形式遍历数组
for (cod,name) in d{
print("\(cod) -- \(name)")
}
2,switch语句(if语句跟object-c基本一致,故不作说明)
switch语句在swift语言中有了很大的扩展,用法也更加灵活。例如不需要在每一个分支上都break了(除非default或者case后面没有语句时,需要一个break)。另外,switch语句不仅可以匹配整型数据,还可以匹配字符串,区间,元组等等。见下面实例
//匹配整数
let vavirable = 100
switch vavirable%2{
case 2:
break;
case 1:
print("奇数")
default:
print("偶数")
}
//匹配浮点数
let floatVar = 2.13
switch floatVar{
case 2.11:
print("no");
case 2.13:
print("yes")
default:
break
}
//合并分支
let vavirable2 = 1;
switch vavirable2%9{
case 1...3:
print("\(vavirable2%9)位于第一梯队")
case 4...6:
print("\(vavirable2)位于第二梯队")
default:
print("\(vavirable2)位于第三梯队")
}
//字符串匹配
let str = "321"
switch str{
case "123","321":
print("ok")
case "234":
print("wrong")
default:
print("not found")
}
//匹配元组
let somePoint = (1,2)
switch somePoint{
case (_,0):
print("在x轴上")
case (0,_):
print("在y轴上")
case(-2...2,-2...2):
print("在矩形内")
default:
break;
}
//值绑定
let otherPoint = (1,1)
switch otherPoint{
case (0,0):
print("在原点")
case (let x,1)://zhi
print("在x轴上")
case(0,let y):
print("在y轴上")
case(-2...2,-2...2):
print("在矩形内")
default:
print("not found");
}