Swift-Extension、String

扩展

Swift中的扩展,有点类似于OC中的分类Category。

扩展可以为枚举、结构体、类、协议添加新功能,可以添加方法、计算属性、下标、(便捷)初始化器、嵌套类型、协议等等

扩展不能办到的事情:

不能覆盖原有的功能,不能添加存储属性,不能向已有的属性添加属性观察器,不能添加父类,不能添加指定初始化器,不能添加反初始化器.......

协议、初始化器

如果希望自定义初始化器的同时,编译器也能够生成默认初始化器

可以在扩展中编写自定义初始化器

类遵守协议实现的required初始化器,不能写在扩展中

协议

如果一个类型已经实现了协议的所有要求,但是还没有声明它遵守了这个协议,可以通过扩展让他来遵守这个协议

String

1个String变量占用多少内存? 下面2个Sring变量,底层存储有什么不同?

var str1 = "0123456789"
var str2 = "0123456789ABCDEF"

如果对String进行拼接操作,String变量的存储会发生什么变化?

str1.append("ABCDE")
str1.append("F")

str2.append("G")

ASCII码表:http://www.ascii-code.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值