swift4.0 语法基础2

  • 断言

向 assert(_:_:) 函数传入一个结果为 true 或者 false 的表达式以及一条会在结果为 false 的时候显式的信息。

如果条件判断为 true,代码运行会继续进行;如果条件判断为 false,代码运行结束,你的应用也就中止了。

let age = -3

assert(age >= 0, "A person's age cannot be less than zero")

// this causes the assertion to trigger, because age is not >= 0

如果代码已经检查了条件,你可以使用 assertionFailure(_:file:line:) 函数来标明断言失败。

  • 可选类型(Optional)

 

可选类型是在 1,标准的类型后面加?2,或者Optional<类型>

例 var myStr:String?=“123”

或 var myStr:Optional<String> = “Hello”

(1)强制解析 :

当你确定可选类型确实包含值之后,你可以在可选的名字后面加一个感叹号( ! )来获取值。

例 if convertedNumber != nil {

    print("convertedNumber has an integer value of \(convertedNumber!).")

}
// 输出 "convertedNumber has an integer value of 123." 

 

(2)If-let 可选量绑定(Optional Binding)

来判断可选类型是否包含值,如果包含就把值赋给一个临时常量或者变量。

例 if let actualNumber = Int(possibleNumber) {

    print("\'\(possibleNumber)\' has an integer value of \(actualNumber)")

} else {

    print("\'\(possibleNumber)\' could not be converted to an integer")

 

3)隐式解析可选类型:

把想要用作可选的类型的后面的问号( String? )改成感叹号( String! )来声明一个隐式解析可选类型。隐式解析后不需要感叹号来获取值

例 et possibleString: String? = “AAA”
let forcedString: String = possibleString! // 需要惊叹号来获取值

let assumedString: String! = “AAA”

let implicitString: String = assumedString // 不需要感叹号 

 

  • 函数

函数定义 func 函数名(参数列表)->返回值类型{

函数体

}

其中:参数列表:
[参数标签1] 形式参数1:类型,[参数标签2] 形式参数2:类型,...

(参数标签一般不写)

func add(n1 : Int, n2 : Int)->Int{

     return n1+n2

}

var n = add(n1:12, n2:13 )

  • 函数标签

可以有可以没有,没有指定时,默认把形参名当作标签。

  • 输入输出参数

两种参数传递方式

值类型

传递的是参数的一个副本,这样在调用参数的过程中不会影响原始数据。

引用类型

把参数本身引用(内存地址)传递过去,在调用的过程会影响原始数据。

在 Swift 众多数据类型中,只有 class 是引用类型,
其余的如 Int、Float、Bool、Character、Array、Set、enum、struct全都是值类型.

让值类型以引用方式传递

Swift 提供的 inout 关键字就可以实现。

func increment(_ value: inout Int, _ length: Int = 10) {

    value += length

}

 

increment(&value)

print(value)

  • 函数类型

函数的返回值用来做参数,这时只需要写函数类型不需要标签。

  • 嵌套函数

函数参数的修饰符

形式参数前默认有修饰符let

如果要改变形式参数的值,应该在定义时改成inout类型参数。

switch语句

跟c语言不同部分

1,执行完某个case后退出switch,不会顺序执行其他case的值。

2,每个case必须至少一个可执行语句

3,所有case必须能涵盖所有变量的值,否则应有default语句

  • for in 循环

循环体中参数不重要时可用_表示

var base =3 ,answer = 1, power = 10

for _ in 1...power{

answer *= base }

  • Repeat while循环

相当于(do while)

  • 转移控制语句

fallthrough 继续执行下一个case语句

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值