Tag: 编程语言
All the articles with the tag "编程语言".
-
Swift 进阶【八】泛型
Published date:和大多数先进语言一样,Swift 拥有不少能被归类于泛型编程下的特性。使用泛型代码,你可以写出可重用的函数和数据结构,只要它们满足你所定义的约束,它们就能够适用于各种类型。比如,像是 和 等多个类型,实际上是它们中的元素类型就是泛型抽象。我们也可以创建泛型方法,它们可以对输入或者输出的类型进行泛型处理。 就定义了一个可以作用于任意类型 A 的函数。某种意义上
-
Swift 进阶【七】字符串
Published date:- - - - 大部分编程语言使用整数值对字符串进行下标操作,比如 将会返回 中的第六个“字符” (这里的“字符”的概念由所操作的编程语言进行定义)。Swift 不允许这么做。为什么?答案可能现在你已经很耳熟了:因为整数的下标访问无法在常数时间内完成 (对于 协议来说这也是个直观要求),而且查找第 n 个 的操作也必须要对它之前的所有字节进行检查。
-
Swift ABI Stability Manifesto
Published date:* Authors: Michael Ilseman (compiled through conversations with many others)
-
Swift 进阶【六】编码和解码
Published date:将程序内部的数据结构序列化为一些可交换的数据格式,以及反过来将通用的数据格式反序列化为内部使用的数据结构,这在编程中是一项非常常见的任务。Swift 将这些操作称为编码(encoding)和解码(decoing)。Swift 4 的一个主要特性就是定义了一套标准的编码和解码数据的方法,所有的自定义类型都能选择使用这套方法。
-
8 Mistakes to Avoid while Using RxSwift
Published date:Judging by the number of talks, articles and discussions related to reactive programming in Swift, it looks like the community has been taken by the storm
-
Escaping Closures - Swift
Published date:- - - - 逃逸闭包(escaping closure),什么是逃逸闭包?苹果官方给的定义是:当一个闭包作为一个参数传递给函数,但是它是在函数返回之后调用的,这时候,这个闭包就称为逃逸闭包。当你声明一个将闭包作为参数的函数时,你可以在参数的类型之前用 来表明这个闭包是允许逃逸的。
-
Swift 进阶【五】函数
Published date:- - - - 要理解 Swift 中的函数和闭包,需要先明白三件事情,按重要程度进行大致排序如下: 要将函数赋值给一个变量,比如 funVar,我们只需要将函数名字作为值就可以了。注意在函数名后没有括号:
-
内存:栈和堆(C / Swift)
Published date:- - - - 什么是栈(Stack)?这是计算机内存中的一个特殊区域,它存储由每个函数创建的临时变量(包括 函数)。栈是一个“LIFO”(后进先出)的数据结构。它是被 CPU 管理和优化的。每次函数声明一个新变量时,它都被“压入”栈中。然后每次函数退出时,所有由该函数压入栈的变量都被释放(也就是说,它们被删除)。一旦释放栈变量,该区域的内存就可用于其他栈变量
-
Swift 进阶【四】结构体和类
Published date:* 结构体 (和枚举) 是值类型,而类是引用类型。在设计结构体时,我们可以要求编译器保证不可变性。而对于类来说,我们就得自己来确保这件事情。
-
Swift 进阶【三】可选值
Published date:Swift 中可选值的定义如下 因为 是枚举类型,所以有的时候可以用模式匹配来进行一些巧妙的操作: * 使用 if case 来进行模式匹配,对非 nil 的值做 for 循环
-
Swift 进阶【二】集合类型协议
Published date:- - - - Sequence定义: 要实现一个Sequence,首先需要提供一个返回迭代器(iterator)的 方法。 对于迭代器,它是一个满足 协议的类型。
-
Swift 进阶【一】内建集合类型
Published date:- - - - 在Swift中,数组是值类型。并且Swift中,Swift标准库中的所有集合类型都使用了“写时复制”这一技术,避免了大量副本导致性能下降。值类型的好处,不仅是性能有提高,其次就是能保证数组的不可变。