Swift 学习笔记 - 01

1.用反斜线 \ 和 小括号 () 做字符串插值 

let hand = 2;

var age = 20;

let str = "i am \(age) years old and I have \(hand) hands";

2.字符串可用 + 进行拼接

1.String类型和 Int类型的不能拼接(和Java不同). 

比如:  let str = "I am " + 2 +" years old";  是错的

可以:  let str = "I am " + String(2) +" years old"; 

3.Swift严格要求变量在使用之前必须进行初始化

4.100万 可写成: 100_0000

5.只有类型完全相同的才能够 加减乘除

1.let num1 = 3

  let num2 = 0.14

  let sum = num1 + num 2   错

2.let sum = 3 + 0.14 对

6.可用typealias关键字定义类型的别名    (和 typedef作用类似)

7.Bool 条件判断. 和Java完全一样true false. 不再有0代表false 非0代表true的概念

8.范围运算符

1.a...b 表示 [a,b]

2.a..<b 表示 [a,b)

3.a<..b 表示 (a,b]

用处:

for i in 0..<5{ }  //循环5次 0~4

9.溢出运算符(只能用于 整型计算) 5个 & 开头:

&+ &- &*        &/ &%(最后两个被废弃了)

用处:

let x = UInt8.max // x值 255

let y = x &+ 1 //y值 0 并且 y 的类型 是 UInt8

10.元组  

1.var point = (x : 10 , y : 20 ,name : "zhang" )

2.可指定类型  var person : (String , Int) = (..............)

3.可将元组的值分别赋值给 多个变量!

var point = (10,20);

var (x , y) = point; //注意这里x,y是2个变量

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

var point = (10,20)

var (_, a) = point;

11.流程结构    一定要加上大括号.

比如 if (a == 10) return; 是错的. 

必须 if (a == 10) {return ;} 是对的

12.for-in

1. for i in 0..<5{  

//TODO 

  }

2.如果不需要用到i,可用下划线_代替.

for _ in 0..<5{  

//TODO 

  }

3.i 是常量! 不能够被赋值

13.switch 

1.不需要在每一个case后面增加break,执行完case对应的代码后 默认会自动退出switch语句

2.可以用来匹配字符串

3.每一个case后面必须至少有一个可以执行的语句

4.一个case后面可以填写多个匹配条件,条件之间用逗号隔开.

5.case的条件可以填写一个范围  比如  case 90...100 :

6.switch要保证处理所有可能的情况,不然编译器直接报错.所以 default: 不能少 (并且default也必须至少有一个可执行语句)

7.可以用来匹配元组

var person = (40,70)

switch person {

case (20,10):

    println(person)

case (_,30):

    println(person)

case (30...50,60...80):

    println(person)

default:

    println(person)

}

8.在case匹配的同时,可以将switch中的值绑定给一个特点的常量或者变量,以便在 case后面的语句中使用

let point = (0,10);

switch point {

case (let x,0):

    println("点在x轴上,并且x值为\(x)")

case (0,let y):

    println("点在y轴上,并且y值为\(y)")

case (let x,let y):

    println("点在(\(x),\(y))")

}

9.switch语句可以使用 where 关键字来增加判断的条件

let point = (-10,10);

switch point {

case (let x,let y) where x == y:

    println("x == y")

case (let x,let y) where x == -y:

    println("x == -y")

case (let x,let y):

    println("其他情况")

}

10.fallthrough

1.作用:执行完当前case后,会接着执行fallthrough后面的case或者default语句

2.位置: 以前break的位置

3.注意:fallthrough后面的case条件不能定义变量和常量

14.函数可添加外部参数名 (默认情况下,函数的第二个以后的参数默认就带有外部参数名)

一旦定义了外部参数名,在调用函数时就必须加上外部参数名 

用 # 号能简化外部参数名的定义  func sum (#num1: Int,#num2: Int) -> (Int,Int) {}

15.默认参数值

1.可以在定义函数时,给形参一个默认值,调用函数时,就可以不用给这个形参传值

2.带有默认参数值的形参,默认情况下Swift会自动给它生成一个跟形参名相同的 外部参数名.

如果在 带有默认参数值的形参前面加一个 _ (注意 和形参之间是有空格的).调用函数时就不用写外部参数名了.

16.常量参数

1.默认情况下,什么都不写,函数的参数都是常量参数,不能在函数内部修改

2.有些情况下,若想参数可修改,在形参前加上 var .

17.输入输出参数

1.在C语言中,利用指针可以在函数内部修改外部变量的值

2.在Swift中,利用 输出输入参数 ,也可以完成相同的功能 只需在形参 前面加 inout(不需要再加var)

3.调用带有输入输出参数的函数时 需要使用 &a


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值