当前位置: 代码迷 >> 综合
 解决方案列表
  • [综合] Day-07:模式

    模式 模式代表单个值或者复合值的结构。 例如,元组(1,2)的结构是由逗号分隔,包含两个元素的列表。因为模式代表一种值的结构,而不是特定的某个值,你可以利用模式来匹配各种各样的值。比如,(x,y)可以匹配元组(1,2),以及任何包含两个元素的元组。除利用模式匹配一个值以外,你可以从复合值中提取出...

    88
    热度
  • [综合] Day-08:数组

    字面量创建数组 可以使用数组字面量来初始化一个数组,它是一种以数组集合来写一个或者多个值的简写方式。数组字面量写做一系列的值,用逗号隔开,用方括号括起来。 创建空数组的时候必须携带类型信息。 如果内容已经提供了类型信息。比如说作为函数的实际参数或者已经分类了的变量或常量,你可以通过空数组字面量来...

    24
    热度
  • [综合] Day-10:字典

    字典 字典存储无序的互相关联的同一个类型的键和同一个类型的值的集合。 字典类型的全写方式dictionary<key,value>,简写方式[key:value],建议使用简写方式。 字典的key必须是可哈希的。 创建空字典 初始器方式。 简写方式。 字面量方式。 Cou...

    78
    热度
  • [综合] Day-11:函数

    函数基本概念 函数是一个独立的代码块,用来执行特定的任务。通过给函数一个名字来定义它的功能,并且在需要的时候,通过这个名字来“调用”函数执行它的任务。 swift统一的函数语法十分灵活,可以表达从简单的无形式参数的C风格函数到复杂的每一个形式参数都有局部性和外部参数名的Object-c风格方法的...

    50
    热度
  • [综合] Day12:闭包

    闭包的概念 闭包是可以在你的代码中被传递和引用的功能性独立代码块。 闭包能够捕获和存储定义在其上下文的任何常量和变量的引用,这也就是所谓的闭合并包裹那些常量和变量,因此被称为“闭包”,swift能够为你处理所能关于捕获的内存管理的操作。 在函数章节中有介绍的全局和内嵌函数,实际上是特殊的闭包...

    106
    热度
  • [综合] Day:13:高阶函数

    高阶函数map 对于原始集合里的每一个元素,以一个变换后的元素替换之形成一个新的集合。 高阶函数filter 对于原始集合里的每一个元素,通过判定来将其丢弃或者放进新集合。 高阶函数reduce 对于原始集合里的每一个元素,作用当前积累的结果。 高阶函数flatMap 对...

    106
    热度
  • [综合] Day:14:枚举

    Object-C面向对象的特性 继承 封装 多态 swift基本单元 枚举 结构体 类 协议 扩展 面向对象概述 从整体的功能上看swift的枚举、结构体、类三者具有完全平等的地位。 swift的类,结构体,枚举中都可以定义(属性、方法、下标、构造体、嵌套类型) 在swift中,...

    40
    热度
  • [综合] Day:15:属性

    存储属性 在其最简单的形式下,存储属性是一个作为特定类和结构体实例一部分的常量或变量。存储属性要么是变量存储属性(由var关键字引入)要么是常量存储属性(由let关键字引入)。 常量结构体实例的存储属性 如果你创建来一个结构体的实例并且把这个实例赋给常量,你不能修改这个实例的属性,即使是...

    9
    热度
  • [综合] Day:16:方法

    实例方法 实例方法是属于特定类实例、结构体实例或者枚举实例的函数。他们为这些实例提供功能性,要么通过提供访问和修改实例属性的方法,要么通过提供访问和修改实例属性的方法,要么通过提供与实例目的的相关的功能。 每一个类的实例都隐含一个叫做self的属性,他完完全全与实例本身结合相当。你可以使用sel...

    44
    热度
  • [综合] Day:17:下标

    下标 类、结构体和枚举可以定义下标,它可以作为访问集合、列表或序列成员元素的快捷方式。你可使用下标通过索引值来设置或检索值而不需要为设置和索引分别使用实例方法。 你可以为一个类型定义多个下标,并且下标会基于传入的索引值的类型选择合适的下标重载使用。下标没有限制单个维度,你可以使用多个输入形式参来...

    84
    热度
  • [综合] Day:18:类的初始化

    初始化器 初始化器在创建特定类型的实例时被调用。 默认的属性值 如上所述,你可以在初始化器里为存储属性设置初始化值。另外,指定一个默认属性值作为属性声明的一部分。当属性被定义的时候你可以通过这个属性分配一个初始化值来指定默认的属性值。 默认的初始化器 swift为所有没有提供初始...

    37
    热度
  • [综合] Day:19:继承

    定义基类 任何不从另一个类继承的类都是所谓的基类 swift类不会从一个通用基类继承。你没有指定特定的类都会以基类的形式创建。 子类 子类是基于现有类创建新类的行为。子类从现有的类继承了一些特征,你可以重新定义它们。你也可以为子类添加新的特征。 为了表明类有父类,要把子类写在父亲类的前面...

    25
    热度
  • [综合] Day:20:多态和类型转换

    类型检查 使用类型检查操作符(is)来检查一个实例是否属于一个特定的子类。如果实例是该子类类型,类型检查操作符返回true,否则返回false. 向下类型转换 某个类类型的常量或变量可能实际上在后台引用自一个子类的实例。当你遇到这种情况时你可以尝试使用类型转换操作符(as?或as!)将它...

    109
    热度
  • [综合] Day:21:扩展

    Extension 扩展为现有的类、结构体、枚举类型、或协议添加了新功能。这些包括了为无访问权限的源代码扩展类型的能力(即所谓的逆向建模)。 扩展和object-c中的category类似。(与object-c的分类不同的是,swift的扩展没有名字) extension的能力 添加计算...

    94
    热度
  • [综合] Day:22:协议

    协议的语法 自定义类型声明时,将协议名放在类型名的冒号之后来表示该类型采纳一个特定的协议。多个协议可以用逗号分开列出。 若一个类拥有父类,将这个父类名放在其采纳的协议名之前,并用逗号隔开。 属性要求 协议可以要求所有遵循该协议的类型提供特定名字和类型的实例属性或类型属性。协议并不会具体说...

    61
    热度
  • [综合] Day:23:泛型

    泛型函数定义 泛型函数可以用于任何类型。 类型形式参数 上面swapTwoValues(_:_:)中,占位符类型T就是一个类型形式参数的例子。类型形式参数指定并且命名一个占位符类型,紧挨着写在函数名后面的一对尖括号(比如<T>)。 一旦你指定了一个类型形式参数,你就可以用它定...

    34
    热度
  • [综合] Day23:多线程

    多线程编程方式 Thread、Operation、OperationQueue、GCD Thread Thread在多线程技术中是最轻量级的,但是需要自己管理线程的生命周期和线程同步。线程同步对数据的枷锁会有一定的系统开销。 //1、创建importPlaygroundSupportPla...

    110
    热度
  • [综合] Day24:错误处理

    错误表示 在swift中如果我们要定义一个表示错误的类型非常简单,只要遵循Error协议就可以了,我们通常用枚举或结构体来表示错误类型,枚举可能用的多一些,因为它能直观表达当前错误类型的每中错误细节。 如何抛出错误 函数、方法和初始化器都可以抛出错误。需要在参数列表后面,返回值前面加th...

    58
    热度
  • [综合] Day25:权限控制

    模块和源文件 模块指的是独立代码分发单元,框架或应用程序或作为一个独立的模块来构建和发布。在swift中,一个模块可以使用import关键字倒入另外一个模块。 源文件就是swift中的源代码文件,它通常属于一个模块,即一个应用程序或者框架。尽管我们一般会将不同类型分别定义子啊不同的源文件中,但是...

    71
    热度
  • [综合] 知识点10:if-else语句

    if后面的条件可以省略小括号、条件后面的大括号不可以省略。 if后面的条件只能是Bool类型。 【代码演示】letage=4ifage>=22{print("Getmarried") }elseifage>=18{print("Beingaadult") }elseifage>...

    43
    热度