12.Swift 中的关键字详解

在Swift 中, 不像Objective-C一样, 有些关键字可以找到对应的解释, 这里我就列一下常用的关键字详解, 陆续会有增加.


1.let关键字

用let修饰的变量会是一个不可变的常量, 也就是说不可以对它进行修改, 但如果用let修饰的常量是一个类, 那么我们可以对其所在的属性进行修改, 比如:

class PersonInfo {
   
    let name = "xiaoming"
    var age = 18
    var height = 170
    var weight = 65
}

let personInfo = PersonInfo()

personInfo.age += 1

print("person age is \(personInfo.age).")
// 输出的结果为: person age is 19.

这里边的name就是不可变的, 如果非要去改变, Xcode会建议你把let修改成var.

PS: 如果这个时候, 再声明一个person常量去引用personInfo, 那么person的所指向的内存块是和personInfo相同的.


2.var关键字

用var关键字声明的变量将会是一个可变的变量, 在这里, 我们并不会用var去引用一个类, 也没有必要, 继续拿上面的例子来说:

class PersonInfo {
   
    let name = "xiaoming"
    var age = 18
    var height = 170
    var weight = 65
}

let personInfo = PersonInfo()

personInfo.age += 1

print("person age is \(personInfo.age).")

这里面的age就是属于var类型, 在初始化之后, 我们仍然可以给它进行修改.

PS: 如果这个时候, 我们用var修饰personMode变量去引用personInfo, 那么personMode和personInfo所指向的内存块并不同, personMode会将personInfo完整的拷贝一份, 然后放在另外一块内存块去管理.


3.class关键字

在Swift当中, 我们是使用Class关键字去声明一个类, 比如:

class PersonInfo {
   
    // class body
}

4.struct关键字

在Swift中, 如果我们需要声明一个结构体, 我们就需要使用到struct关键字, 比如:

struct PersonInfo {
    // struct body
}

5.enum关键字

而我们需要声明枚举的时候, 我们就使用enum关键字, 比如:

enum PersonMode {
    case zhangsan
    case lisi
    case wangwu(String)
    case luoliu(String, Double, Int)
}

在Swift当中的enum和Objective-C并不一样, Swift的enum不会被隐式赋值为0, 1, 里面的zhangsan就是这个枚举分支的完整值, 并且在Swift中, 我们可以给enum case声明各种类型, 比如里面的case luoliu一样.

当然, 我们也可以给枚举值默认声明一个值, 但在枚举名之前, 要声明是什么类型, 比如:

enum Numbers: Int {
    case One = 1, Two, Three, Four
}

let number = Numbers.One.rawValue

print(number)

6.override关键字

在Swift中, 如果我们要重写某个方法, 或者某个属性的话, 我们需要在重写的变量前增加一个override关键字, 比如:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值