swift学习01-基础语法(常量,变量,流程控制)

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


swift语言中,新添加了一种数据类型-元组,元组类型数组和字典。但是比数组和字典都更加灵活,元组的定义,分解和应用如下代码所示,注意元组都是用(),而不是[];

//元组的定义和分解

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");
}



你可能感兴趣的:(swift之路)