iOS开发Swift-基础部分
1.常量
let maxNum = 10 //单个常量赋值 let maxNum = 10, minNum = 2 //多个常量赋值用逗号隔开
2.变量
var x = 0.0 //单个变量赋值 var x = 0.0, y = 0.1 //多个变量赋值用逗号隔开
3.类型注解
系统可通过赋初始值进行自动推断。
var name: String //冒号(:)加空格( ) name = "Hello" //先注解再赋值
var name, address: String //多个变量注解
let one: Int = 1 //同时注解和赋值
4.输出
print(name) //输出一个变量/常量 print("welcome the \(address)") //输出一串字符加变量,使用转义字符"\"与括号、变量名表示该变量
5.注释
//这是一条注释 /* 这也是 一条注释 */ /* 这是一个篮子 /* 这是篮子里的苹果 */ 这样方便将有注释的代码注释掉 */
6.分号
平时可加可不加,同一行中有两句话必须加。
let cat = "🐱"; print(cat)
7.整数
Int UInt(最好不用)
8.浮点数
Double |
64位 | 很大/高精度情况下使用 | 15位小数 |
Float |
32位 | 对精度要求不高的情况下用 | 6位小数 |
9.Swift语言自带类型安全与类型推断,根据赋值类型推断变量/常量字符类型。
10.字符型字面量
十进制数 | 17 | |
二进制 | 0b前缀 | 0b10001 |
八进制 | 0o前缀 | 0o21 |
十六进制 | 0x前缀 | 0x11 |
11.强制转换
let Pi = Double(three) + 0.1415926 let iPi = Int(Pi) //截断小数,3.14159会变成3
12.类型别名
typealias Audio = UInt16 //typealias:类型别名关键字;Audio:别名;UInt16:原名
13.布尔值(Bool)
let a = true let b = false
14.元组(tuples)
let http404Error = (404,"Not Found") //这是一个(Int,String)元组 //元组定义 let (Code,Message) = http404Error //元组分解 print("status is \(Code)") print("status is \(Message)") //当只需要这个元组的一部分时,元组半分解 let (Code,_) = http404Error print("status is \(Code) //下标分解 print("status is \(http404Error.0)") //命名分解 let http404Error = (Code: 404, Message: "Not Found") print("status is \(http404Error.Code)")
15.可选类型(optionals)
let a = "123" let b = Int(a) //b是一个可选类型的Int(Int?)
16.nil
类似于java中的null,是一个值,表示值缺失。
17.可选绑定
if var a = Int(b){ //Int(b)为nil或赋值false,if判断为false print("true") }
18.隐式解析可选类型
可选类型 | option | ? | 可能有值,也可能无值 | Int? |
强制解析 | ! | 如果确定有值则解析值。如果没有值(nil),则强制解析会崩溃 | a! | |
可选绑定 | 判断是否有值 |
if let a = b{ print("√") }else{ peint("×") }
|
||
自动解析 (隐式解析) |
声明变量时就用"!",使用时会自动解析值,而不需要加"!" 如果它之后可能会成为nil时不要使用隐式解析可选类型!当解析nil时程序会崩溃。 |
//未使用隐式解析时 var dog: String? = "旺财" let cat: String = dog! let fish: String = dog! let monkey: String = dog! //使用隐式解析时 var dog: String! = "旺财" let cat: String = dog let fish: String = dog let monkey: String = dog
|
19.错误处理
可推断运行失败原因,并传播出去
//1.抛出 func AnError() throws{ //可能有错的函数 } //2.可能有一个错并打印问题 do{ try AnError() //没有错时运行的函数 }catch{ //有错时抛出的内容 } //3.可能有两个错并打印问题 do{ try TwoErrors() //没有错时运行的函数 success() }catch ErrorsMessage.oneError{ //出现第一个错时抛出的内容 OneReeor() }catch ErrorsMessage.twoReeor{ //出现第二个错时抛出的内容 TwoError() }
20.断言和先决条件
断言和先决条件指在编码时赋予一个必要条件或期望,运行时如果这个条件为true则继续运行,如果为false则终止运行。
断言帮助找到错误假设,仅在调试环境中止。先决条件帮助找到存在的问题,在调试环境和生产环境出问题都会被中止。
21.断言调试
let age = -3 assert(age >= 0, ”年龄不能小于0")
assert(条件,"提示") assert(条件)
断言失败:用于检查条件判断是否完全。
if age > 10{ print("年龄>10") }else if age > 0 { print("0<年龄<10") }else{ assertionFailure("有个条件还没判断") }
22.强制执行先决条件
一个条件可能为假,但后续运行必须为真。
precondition(index>0,"下标必须大于0")
unchecked模式不执行先决条件。
23.fatalError(_:file:line:)
用于没实现的方法,不会被优化掉,运行到此时程序被中断。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性