swift中的关键字

discardableResult

discardableResult:忽略函数的返回值

inout

说到inout就得说swift中的两种参数传递方式:

1.值传递

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

2.指针传递

指针传递把参数本身引用(内存地址)传递过去,在调用过程中会影响原始数据
在swift的众多类型中,只有calss是指针传递,其余的如Int、Float、struct、enum都是值传递,要想让值传递以指针方式传递,有时候我们需要通过一个函数改变外面变量的值,这时swift中给我们提供了inout关键字

var value = 20
print(value)  //20
func testInout (valueT : inout Int) {
      valueT = valueT + 10
}
testInout(valueT : &value)
print(value) //30

即声明函数时在参数前面用inout修饰,函数内部实现改变函数外部参数,传入参数时在参数前面加&表明这个参数在函数内部是可以修改的(可将改变传到原始数据)

注意 在此插入两个概念 组件 源文件

组件:为一个代码分布独立单元,一个framework可称为一个组件,在swift中使用其他组件需要使用import关键字
源文件:在组件内单独的源代码文件,也就是我们平时创建的 .swift 文件

private

private修饰的属性和方法只在当前类里边可以访问

fileprivate

fileprivate修饰的属性和方法在当前swift源文件下都可以访问

open

1.修饰的属性和方法在其他作用于可以被访问
2.修饰的类可以在组件内被继承,也可以在引入当前组件的组件内继承
3.修饰的类成员,可以在组件内被子类重载,也可以在引入当前组件的组件内被子类重载

public

1.修饰的类只能在组件内被继承
2.修饰的类成员只能在组件内被子类重载

internal

可以被组件内的任何源文件访问,但是其他组件不能访问

final

1.修饰的类不能被继承
2.修饰的属性或方法不能被重写

convenience

说到convenience就得提及swift中的两种初始化方法:指定初始化方法、便利初始化方法
1.指定初始化方法
指定初始化方法就是init方法,默认的init方法就是指定初始化方法,init方法不能嵌套使用。(也就是oc中系统的init方法)
2.便利初始化方法
便利构造方法即在init方法前面加上convenience关键字(也就是oc中开发者自定义的初始化方法)
注意:
1.便利构造方法必须调用指定构造方法完成初始化,不能单独使用
2.便利构造方法可以嵌套使用,但最终都需要调用指定构造方法,不能被子类重写,或被子类super形式调用
3.指定构造方法不能嵌套调用
便利构造方法比指定构造方法更加灵活,为我们开发提供便利,因为更容易满足实际要求,所以在开发中根据需要开设计便利构造方法

你可能感兴趣的:(swift中的关键字)