Swift学习笔记

jopen 9年前

Swift学习笔记

注意点:

1:不用些main函数

2:不用加分号(同一行写多条语句要加)

3;用let声明常量(常量不可修改),var声明变量

4:字符串用""(双引号扩着)

注:Swift是类型安全语言,

1:数据类型

常见的数据类型:比其他语言多了 元组(Tuple),可选类型(Optinal)

注:Swift在使用变量前必须初始化,没有默认初始化

1.1:声明变量,常量类型 ,一般可不写,Swift可以自动推断数据类型

let age:Int = 10;

标示:

十进制:直接写

二进制:0b(前缀:零b)

八进制:0o(前缀零o)

十六进制:0x(前缀零x)

浮点数

Double:64位浮点数(默认)

Float:32位浮点数

Bool:true与false,但是与OC不同:0不是false。

2:字符串

1:字符串的拼接:直接用“+”

let s1 = "123"   let s2 = "456"  let s3 = s1+s2//字符串的拼接

2:字符串

用反斜线和小括号()可把常量或变量插入到字符串中

let num = 2  let str = "I Hava \(num) dogs"   或者 把num强制转为String类型,  let str = "I Hava "+String(num)+" dogs"

3:运算符

这里着重介绍:范围运算符和元组类型

3.1范围运算符

范围运算符:"..<"与"..."

a..<b 表示:[a,b)  a...b 表示:[a,b]

用处:(对于for循环,可以非常方便的使用。)

for i in 0...3{   print(i);  }

3.2元组

元组是由任意N个类型的数据组成,元组中得元素成为元素

表示:

let point = (x:1,y:2)//x,y为元素名称  var point = (1,2)  let point = ()//空元组  let point:(Int,String) = (10,"cnblog")//定义时指明元素的类型  let point = (10,"cnblog")

元素访问:

point.0//访问元组第一个位置的元素  point.x//针对第一种表示可用,   point.0 = 2/修改元素的值,只针对用var声明的元组

注:1:如果用的是let声明的话不能修改元组的元素的值,但是var可以。2:在明确指明元素类型的情况下,不能加上元素名称

赋值let(x,y) = (1,2)//x与y的值分别是常量,并且Swift的赋值运算没有返回值

可以使用下划线忽略某个元素的值,取出其他元素的值

var point = (1,2)  var(_,y) = point;//用y来接收point中2得值

4:流程控制

着重介绍for-in,switch

4.1使用for-in

for i in 0...3{   print(i);  }    for _ in 0...3{   print("---");  }

注:可以使用_循环来忽略循环体的值.

4.2使用标签

标签:可以明确要退出哪个循环

flag:for _ in 1...3{ //flag为 标签

for item in 1...5{

println("------")

if flag == 2 {

break group

}

}

println("lalla")

4.3使Switch的使用

C语言中Switch只能放int,但是Swift中可以放int,String等。同时可以省略break,即可退出循环

注:1:每个case中必须要有能够执行的语句,也即case后面的语句不能为空,

2:但是case后面,可以填写多个条件,条件之间用逗号隔开

switch x {  case 1,2,3:   println("1,2")  default   println("other");   }

3:case后可填写范围作为匹配

switch x {  case 1...3://这里是数学上的[1,3]   println("1,2")  default   println("other");   }

4:case可以匹配元组

let point = (1,1);  switch x {  case (0,0):   println("0,0")  case (_,1):  //忽略point.0的值,也即任何值都可以   println("any,1")  default   println("other");   }

5:case后可以跟着where

let point = (1,1);  switch x {  case (x,y) where x = y:   println("x=y")  default   println("other");   }

5:函数

1:定义格式

1:有返回值

func 函数名(形参列表) -> 返回值类型{   //函数体  }    //形参列表格式:形参名:形参类型

2:无返回值

//2.1:  func 函数名(形参列表) -> Void{   //函数体  }    //2.2:  func 函数名(形参列表) -> Void{   //函数体  }    //2.3  func 函数名(形参列表){   //函数体  }      //注空元组相当于Void

外部参数名:可以在调用函数时明确各个参数的含义

定义格式    func 函数名(外部参数名 形参名:形参类型) ->返回值{   //函数体  }     注:一旦定义了外部参数名,在调用函数的时候一定要加上外部参数名    //简写    func 函数名(#形参名:形参类型) ->返回值{   //函数体  }

Swift函数的参数分为常亮参数和变量参数

迷人情况下,函数的参数都是常量参数,不能再函数内部修改

func test(num:Int){   num = 10//报错  }

6:输入输出参数

Swift中可以利用输入输出参数修改外部变量的值,(同C语言的指针)定义:参数名前加上inout

func change(inout num:Int){   num = 10  }    var a = 20  change(&a)

其他

类型别名:关键字:typlealias

格式typlealias myInt = Int