Swift 进阶(十六)函数式编程、面向协议编程、响应式编程
摘要:函数式编程(Funtional Programming) 基本概念 函数式编程(Funtional Programming,简称FP)是一种编程范式,也就是如何编写程序的方法论 主要思想:把计算过程尽量分解成一系列可复用函数的调用 主要特征:”函数的第一等公民“,函数与其他数据类型一样的地位,可以赋
阅读全文
posted @
2021-03-31 02:38
FunkyRay
阅读(275)
推荐(0)
Swift 进阶(十五)从OC到Swift(下)
摘要:String Swift的字符串类型 ,和OC的 ,在API设计上还是有较大差异的 String的插入和删除 和它的 ,共享字符串数据 其本质是 内部有一个指针指向 对应的区域 发生修改或者转为 时,会分配新的内存存储字符串数据,不会影响到最初的 的内容,编译器会自动做优化 String与Chara
阅读全文
posted @
2021-03-31 02:37
FunkyRay
阅读(138)
推荐(0)
Swift 进阶(十五)从OC到Swift(上)
摘要:标记 我们可以通过一些注释标记来特殊标明注释的含义 类似 中的 类似 中的 用于标记未完成的任务 用于标记待修复的问题 使用示例如下 我们还可以使用 来作为警告的提示,效果更为显著 条件编译 我们还可以在 自定义标记 在 里自定义的标记要以 开头 打印 我们可以自定义打印的内容,便于开发中的详情观察
阅读全文
posted @
2021-03-31 02:37
FunkyRay
阅读(317)
推荐(0)
Swift 进阶(十四)字面量、模式匹配
摘要:字面量(Literal) 基本概念 下面代码中的 就是字面量 常见字面量的默认类型 可以通过 修改字面量的默认类型 Swift自带的绝大部分类型、都支持直接通过字面量进行初始化 字面量协议 Swift自带类型之所以能够通过字面量初始化,是因为它们遵守了对应的协议 Bool: Int: Float、D
阅读全文
posted @
2021-03-31 02:36
FunkyRay
阅读(108)
推荐(0)
Swift 进阶(十三)内存管理
摘要:内存管理 基本概念 跟 一样,Swift也是采取基于引用计数的ARC内存管理方案(针对堆空间) Swift的ARC中有三种引用 强引用(strong reference) : 默认情况下,引用都是强引用 弱引用(weak reference) :通过 定义弱引用 必须是可选类型的 ,因为实例销毁后,
阅读全文
posted @
2021-03-31 02:35
FunkyRay
阅读(377)
推荐(0)
Swift 进阶(十二)高级运算符、扩展、访问控制
摘要:高级运算符 溢出运算符(Overflow Operator) Swift的算数运算符出现溢出时会抛出运行时错误 Swift有溢出运算符 ,用来支持溢出运算 计算方式 类似于一个循环,最大值255再+1,就会回到0;最小值0再 1,就会回到255 而 就等于 ,也就是255 + 1 + 254,255
阅读全文
posted @
2021-03-31 02:34
FunkyRay
阅读(149)
推荐(0)
Swift 进阶(十一)String、Array的底层分析
摘要:String 我们先来思考String变量占用多少内存? 我们通过打印可以看到 占用了16个字节,并且打印内存布局,前后各占用了8个字节 下面我们再进行反汇编来观察下 可以看到这两句指令正是分配了前后8个字节给了 那String变量底层存储的是什么呢? 我们通过上面看到 的16个字节的值其实是对应转
阅读全文
posted @
2021-03-31 02:33
FunkyRay
阅读(350)
推荐(0)
Swift 进阶(十)错误处理、泛型
摘要:错误处理 错误类型 开发过程中常见的错误有 语法错误(编译报错) 逻辑错误 运行时错误(可能会导致闪退,一般也叫做异常) .... 自定义错误 Swift中可以通过 协议自定义运行时的错误信息 函数内部通过 抛出自定义 ,可能会抛出 的函数必须加上 声明 需要使用 调用可能会抛出 的函数 抛出错误信
阅读全文
posted @
2021-03-31 02:32
FunkyRay
阅读(180)
推荐(0)
Swift 进阶(九)协议、元类型
摘要:协议(Protocol) 基本概念 协议可以用来定义方法、属性、下标的声明,协议可以被结构体、类、枚举遵守 多个协议之间用逗号隔开 协议中定义方法时不能有默认参数值 默认情况下,协议中定义的内容必须全部都实现 协议中的属性 协议中定义属性必须用 关键字 实现协议时的属性权限要不小于协议中定义的属性权
阅读全文
posted @
2021-03-31 02:31
FunkyRay
阅读(190)
推荐(0)
Swift 进阶(八)初始化、可选链
摘要:初始化器 类的初始化器 类、结构体、枚举都可以定义初始化器 类有两种初始化器 指定初始化器(designated initializer) 便捷初始化器(convenience initializer) 每个类至少有一个指定初始化器,指定初始化器是类的主要初始化器 默认初始化器总是类的指定初始化器
阅读全文
posted @
2021-03-31 02:30
FunkyRay
阅读(120)
推荐(0)
Swift 进阶(七)方法、下标
摘要:方法(Method) 基本概念 枚举、结构体、类都可以定义实例方法、类型方法 实例方法(Instance Method):通过实例对象调用 类型方法(Type Method):通过类型调用 实例方法调用 类型方法用 或者 关键字定义 类型方法中不能调用实例属性,反之实例方法中也不能调用类型属性 不管
阅读全文
posted @
2021-03-31 02:29
FunkyRay
阅读(144)
推荐(0)
Swift 进阶(六)属性
摘要:属性的基本概念 Swift中跟实例相关的属性可以分为2大类 存储属性(Stored Property) 类似于成员变量的概念 存储在实例的内存中 结构体、类可以定义存储属性 枚举不可以定义存储属性 计算属性(Computed Property) 本质就是方法(函数) 不占用实例的内存 枚举、结构体、
阅读全文
posted @
2021-03-18 00:48
FunkyRay
阅读(210)
推荐(0)
Swift 进阶(五)闭包
摘要:闭包表达式(Closure Expression) 在Swift中,可以通过 定义一个函数,也可以通过 定义一个函数 闭包表达式格式如下 闭包表达式的简写如下 尾随闭包 如果将一个很长的闭包表达式作为函数的最后一个实参,使用尾随闭包可以增强函数的可读性 尾随闭包是一个被书写在函数调用括号外面(后面)
阅读全文
posted @
2021-03-16 15:16
FunkyRay
阅读(309)
推荐(0)
Swift 进阶(二)函数、可选项
摘要:函数 函数的定义 有返回值的函数 形参默认是 ,也只能是 无返回值的函数 本质返回值的就是一个空元组 隐式返回 如果整个函数体是一个单一的表达式,那么函数会隐式的返回这个表达式 返回元组,实现多返回值 函数的文档注释 可以通过一定格式书写注释,方便阅读 "详细参照Apple官方的api设计准则" 参
阅读全文
posted @
2021-03-14 17:52
FunkyRay
阅读(224)
推荐(0)
Swift 进阶(四)结构体和类
摘要:结构体 基本概念 在Swift标准库中,绝大多数的公开类型都是结构体,而枚举和类只占很小一部分 比如 等常见类型都是结构体 所有的结构体都有一个编译器自动生成的孵化器(initializer,初始化方法、构造器、构造方法) 可以传入所有成员值,用以初始化所有成员(存储属性,Stored Proper
阅读全文
posted @
2021-03-14 17:43
FunkyRay
阅读(441)
推荐(0)
Swift 进阶(三)枚举
摘要:枚举的基本用法 关联值(Associated Values) 有时会将 和`其他类型的值`关联存储在一起,会非常有用 必要时 可以改成 原始值(Raw Values) 枚举成员可以使用 的默认值预先关联,这个默认值叫做 原始值不占用枚举变量的内存,原始值只是关联上了枚举变量,所以原始值占用内存的大小
阅读全文
posted @
2021-03-14 17:42
FunkyRay
阅读(274)
推荐(0)
Swift 进阶(一)基础语法
摘要:Swift简介 在学习Swift之前,我们先来了解下什么是Swift Swift是 在2014年6月 发布的全新编程语言,中文名和LOGO是”雨燕“ Swift之父是 ,也是 编译器的作者, 项目的主要发起人 Swift版本 Swift历时七年,从 更新到 ,经历了多次重大改变, 终于稳定 API(
阅读全文
posted @
2021-03-08 13:56
FunkyRay
阅读(785)
推荐(0)