摘要: inout是可以用来在函数内部修改外部属性内存的。 一、inout回顾 示例代码: func test(_ num: inout Int) { num = 20 } var a = 10 test(&a) print(a) // 输出:20 test(&a) 通过汇编分析,全局变量a的地址0x6c5 阅读全文
posted @ 2021-05-27 16:58 1024星球 阅读(793) 评论(0) 推荐(1) 编辑
摘要: 任何一门语言都有属性的概念。Swift中的属性是怎么的呢? 一、属性 Swift中跟实例相关的属性可以分为2大类:存储属性和计算属性。 1.1. 存储属性(Stored Property) 特点: 类似于成员变量的概念; 存储在实例的内存中; 结构体、类可以定义存储属性; 枚举不可以定义存储属性。 阅读全文
posted @ 2021-05-27 09:52 1024星球 阅读(282) 评论(1) 推荐(0) 编辑
摘要: 什么是闭包?闭包表达式又是什么? 一、闭包表达式(Closure Expression) 在Swift中,可以通过func定义一个函数,也可以通过闭包表达式定义一个函数。 1.1. 闭包表达式的格式 { (参数列表) -> 返回值类型 in 函数体代码 } 1.2. 闭包表达式和函数的比较 定 阅读全文
posted @ 2021-05-26 17:45 1024星球 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 通过汇编分下值类型的本质。 一、值类型 值类型赋值给var,let或者给参数传参,是直接将所有内容拷贝一份。类似于对文件进行复制粘贴操作,产生了全新的文件副本,属于深拷贝(deep copy)。 示例: func testStruct() { struct Point { var x: Int va 阅读全文
posted @ 2021-05-26 13:45 1024星球 阅读(467) 评论(0) 推荐(0) 编辑
摘要: 在Swift标准库中,绝大多数的公开类型都是结构体,而枚举和类只占很小一部分。 一、结构体 常见的Bool、Int、Double、String、Array、Dictionary等常见类型都是结构体。 自定义结构体: struct Date { var year: Int; var month: In 阅读全文
posted @ 2021-05-08 16:29 1024星球 阅读(666) 评论(1) 推荐(0) 编辑
摘要: 可选项,一般也叫可选类型,它允许将值设为nil。 一、定义可选项 平时开发中,如果我们需要把一个变量置空时只需要把变量赋值一个nil即可: 上面尝试后不行,那怎么把一个变量置空呢? 答案:把变量设置可选类型即可 如何定义可选类型(可选项)? 在类型后面加个问号?; 定义可选项后变量默认就是nil。 阅读全文
posted @ 2021-05-08 14:59 1024星球 阅读(395) 评论(0) 推荐(0) 编辑
摘要: 适度给类型起别名能够让代码更加易懂,开发效率更高,可维护性更好。 一、typealias(别名) typealias用来给类型起别名。 typealias Byte = Int8 typealias Short = Int16 typealias Long = Int64 typealias Dat 阅读全文
posted @ 2021-05-08 09:25 1024星球 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 函数在任何语言中都是存在的,Swift中函数更加灵活。 一、函数的定义 1.1. 有返回值(形参默认是let,也只能是let) func pi() -> Double { return 3.14 } print(pi()) // 输出:3.14 func sum(v1: Int, v2: In 阅读全文
posted @ 2021-05-07 10:58 1024星球 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 一、if-else if后面的条件可以省略小括号 条件后面的大括号不可以省略 let age = 10 if age >= 18 { print("大学") } else if age >= 16 { print("高中") } else { print("义务") } if后面的条件只能是Bool 阅读全文
posted @ 2021-05-07 09:51 1024星球 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 如果你习惯了OC的语法,第一次接触Swift的语法可能会有点抗拒,因为Swift的语法有点怪。但如果你有前端的基础,学Swift可能会有点吃力,如果你有C++的基础可能会学得比较快点。不管你有什么样的语法基础,学会Swift后你都会觉得这是门优秀的语言,总之相比哥哥OC更简洁,更高效。现在Swift 阅读全文
posted @ 2021-04-30 09:35 1024星球 阅读(267) 评论(0) 推荐(0) 编辑