Swift学习笔记总结(一)

类型别名

类型别名(type aliases)就是给现有类型定义另一个名字。你可以使用 typealias 关键字来定义类型别名。

typealias AudioSample = UInt16

定义了之后,可以使用这个别名来代替之前的

var maxAmplitudeFound = AudioSample.min // maxAmplitudeFound 现在是 0(本例中, AudioSample 被定义为 UInt16 的一个别名。因为它是别名, AudioSample.min 实际上是 UInt16.mi ,所以会给 赋一个初值 。)

BOOL(布尔值)

Swift 有一个基本的布尔(Boolean)类型,叫做 Bool 。布尔值指逻辑上的(logical,因为它们只能是真或者 假。不再有YES或者NO这两个,会报错,而且也敲不出来了。Swift 有两个布尔常量, true 和 false :

let orangesAreOrange = true let turnipsAreDelicious = false

orangesAreOrange 和 turnipsAreDelicious 的类型会被推断为 Bool ,因为它们的初值是布尔字面量。就像之 前提到的 Int 和 Double 一样,如果你创建变量的时候给它们赋值 true 或者 false ,那你不需要将常量或者变量 声明为 Bool 类型。初始化常量或者变量的时候如果所赋的值类型已知,就可以触发类型推断,这让 Swift 代码 更加简洁并且可读性更高。

当你编写条件语句比如 if 语句的时候,布尔值非常有用:

if turnipsAreDelicious { print("Mmm, tasty turnips!")

} else {print("Eww, turnips are horrible.")

}// 输出 "Eww, turnips are horrible."

条件语句,例如 if ,请参考控制流。

如果你在需要使用 Bool 类型的地方使用了非布尔值,Swift 的类型安全机制会报错。下面的例子会报告一个编译 时错误:

let i = 1 if i {

// 这个例子不会通过编译,会报错 }

然而,下面的例子是合法的:

let i = 1 if i == 1 {

// 这个例子会编译成功

}

i == 1的比较结果是BOOL 类型,所以第二个例子可以通过类型检查。类似 这样的比较,请参考基本操作 符。

元祖

元组(tuples)把多个值组合成一个复合值。元组内的值可以是任意类型,并不要求是相同类型。

let http404Error = (404, "Not Found")// http404Error 的类型是 (Int, String),值是 (404, "Not Found")

(404, "Not Found") 元组把一个 Int 值和一个 String 值组合起来表示 HTTP 状态码的两个部分:一个数字和一 个人类可读的描述。这个元组可以被描述为“一个类型为 (Int, String) 的元组”。

你可以将一个元组的内容分解(decompose)成单独的常量和变量,然后你就可以正常使用它们了:

let (statusCode, statusMessage) = http404Error

print("The status code is \(statusCode)")// 输出 "The status code is 404"

print("The status message is \(statusMessage)") // 输出 "The status message is Not Found"

如果你只需要一部分元组值,分解的时候可以把要忽略的部分用下划线( _ )标记:

(Int, I

let (justTheStatusCode, _) = http404Error print("The status code is \(justTheStatusCode)") // 输出 "The status code is 404”

而且你还可以像访问数组那样取得第零个位置以及其他位置的值是神马(下标是从0开始的哦)

print("The status code is \(http404Error.0)")// 输出 "The status code is 404"print("The status message is \(http404Error.1)") // 输出 "The status message is Not Found"

当然了你还可以在定义元祖的时候给单个元素进行命名:

let http200Status = (statusCode: 200, description: "OK")

给元组中的元素命名后,你可以通过名字来获取这些元素的值:

print("The status code is \(http200Status.statusCode)")

// 输出 "The status code is 200"

print("The status message is \(http200Status.description)") // 输出 "The status message is OK"

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于 Swift 重要这个文档所包含的准备信息, 是关于开发的 API 和技术的。这个信息可能会改变, 根据这个文...
    无沣阅读 4,372评论 1 27
  • 基础部分(The Basics) 当推断浮点数的类型时,Swift 总是会选择Double而不是Float。 结合...
    gamper阅读 1,332评论 0 7
  • About me: 在学习Swift之前完完全全的零基础编程,不知道变量与常量区别的那种零基础。 教程主要看 ht...
    lightandall阅读 344评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,860评论 18 139
  • 十月寒秋清风夜, 苍穹枯坐上弦月。 月缺人去情难绝, 徒对清影伤离别。 幽幽往事谁诉说, 落落孤灯明里灭。 醉卧花...
    放羊的小孩儿阅读 222评论 1 2