科技速递|与众不同的swift学习笔记
文章只是根据自身情况 , 记录swift语言和其他语言的区别 , 请勿对号入座 , 请根据自身情况选择性学习:
一、类型注解注意:类型注解作为一个需要了解的知识点 , 不做深入研究 , 因为在项目实操中很少需要写类型注解;理由是:Swift 可以推断出常量或者变量的类型
当你声明常量或者变量的时候可以加上类型注解(type annotation) , 说明常量或者变量中要存储的值的类型 。 如果要添加类型注解 , 需要在常量或者变量名后面加上一个冒号和空格 , 然后加上类型名称 。
var x:String声明中的冒号代表着“是...类型” , 所以这行代码可以被理解为:
“声明一个类型为 String, 名字为 x 的变量 。 ”
“类型为 String ”的意思是“可以存储任意 String 类型的值 。 ”
x 变量现在可以被设置成任意字符串:
x = "高效码农"print(x)完整代码:
var x:Stringx = "高效码农"print(x)你可以在一行中定义多个同样类型的变量 , 用逗号分割 , 并在最后一个变量名之后添加类型注解:
var red, green, blue: Double二、整数Swift提供的整数类型有:Int、Int8、Int16、Int32、Int64、UInt、UInt8、UInt16、UInt32、UInt64
带U的为无符号整数;
除非你需要特定长度的整数 , 一般来说使用 Int 就够了 。 这可以提高代码一致性和可复用性 。 即使是在32位平台上 , Int 可以存储的整数范围也可以达到 -2,147,483,648 ~ 2,147,483,647 , 大多数时候这已经足够大了 。
三、类型别名类型别名(type aliases)就是给现有类型定义另一个名字 。 你可以使用 typealias 关键字来定义类型别名 。
typealias exmple = UInt32var typeExmple = exmple.max本例中 , exmple 被定义为 UInt32 的一个别名 。 因为它是别名 , exmple.min 实际上是 UInt32.max
, 所以会给 typeExmple 赋一个初值 4294967295 。
项目实操中没有用到过这个特性 , 在其他语言实战中也没有遇到有类似需求的场景 , 不知道干啥用的;
四、可选类型声明一个可选常量或者变量
var surveyAnswer: String?print(surveyAnswer)// surveyAnswer 被自动设置为 nilSwift 的 nil 和 Objective-C 中的 nil 并不一样 。 在 Objective-C 中 , nil 是一个指向不存在对象的指针 。 在 Swift 中 , nil 不是指针——它是一个确定的值 , 用来表示值缺失 。 任何类型的可选状态都可以被设置为 nil , 不只是对象类型 。
五、可选绑定在Swift中 , 返回值或者数据类型后面加 ?表示可选类型 , 值可以为空 , 但是后面加 !的话 , 表示告诉编译器 , 这个是一定有值的 , 相当于强制解析 , 如果没有值的话 , 就会崩 。 这是前提 。 实际应用举例如下:
【科技速递|与众不同的swift学习笔记】let url = URL.init(string: "")//正常写惯了OC的话 , 为了保证程序的稳定性,强制解析前一定会加判断 , 通常会这么写if url != nil {let request = URLRequest(url: url!)}//但是在工程中会有很多很多的可选类型 , 如果每个都这么写的话 , 看起来肯定不太优雅 , 所以Swift推出了一个可选绑定的写法if let url = url {let request = URLRequest(url: url)
推荐阅读
- 所持股份|万兴科技:公司控股股东、实际控制人吴太兵质押150万股
- 发布公告|数量过半!博创科技:天通股份累计减持约150万股
- 英雄科技聊数码|蔡崇信有实力买下篮网,那身价3200亿的马云,能买下几支NBA球队
- 科技前沿阵地|涨疯了!海思安防芯片遭哄抬“围剿”
- 月影浓|吴亦凡机械造型走秀 垫肩披风搭银框眼镜科技感足
- 中国历史发展过程|中国历史发展过程.中国的科技史界过去半个多世纪
- 天津|桂发祥:不再持有昆汀科技股份
- 消费|减持!天通股份:减持博创科技约32万股
- 处罚|老周侃股:吉鑫科技大股东应补偿踩雷投资者
- 华中科技大学|杯具!超本科线95分,本科有路不走,却梦幻般碰瓷,撞开专科的门
