Swift基础 基础知识

2023-07-17 17:23:48 浏览数 (2)

翻译自:https://docs.swift.org/swift-book/LanguageGuide/TheBasics.html

Swift 是 iOS、macOS、watchOS 和 Apple tvOS app 开发的新编程语言。尽管如此,从您在C和Objective-C开发的经验来看,Swift的许多部分都会很熟悉。

Swift提供了所有基本C和Objective-C类型的自己的版本,包括用于整数的Int、用于浮点值的DoubleFloat、用于布尔值的Bool和用于文本数据的String。Swift还提供了三种主要集合类型的强大版本,ArraySetDictionary,如集合类型中所述。

与C一样,Swift使用变量通过标识名称存储和引用值。Swift还广泛使用值无法更改的变量。这些被称为常数,比C中的常数强大得多。在整个 Swift 中,常量会使用,使代码在处理不需要更改的值时更加安全、更清晰。

除了熟悉的类型外,Swift还引入了Objective-C中没有的高级类型,例如元组。元组使您能够创建和传递值分组。您可以使用元组从函数中返回多个值作为单个复合值。

Swift还引入了可选类型,用于处理值缺失的情况。可选内容要么说“有一个值,它等于x”或“根本没有值”。使用可选类似于在Objective-C中使用nil和指针,但它们适用于任何类型,而不仅仅是类。可选选项不仅比Objective-C中的nil指针更安全、更具表现力,而且是Swift许多最强大功能的核心。

Swift 是一种类型安全的语言,这意味着该语言可帮助您清楚地了解代码可以使用的值类型。如果您的部分代码需要String,则类型安全可以防止您错误地传递给Int。同样,类型安全可防止您意外地将可选String传递给需要非可选String的代码。类型安全可帮助您在开发过程中尽早捕获和修复错误。

常量和变量(Constants and Variables)

常量和变量将名称(如maximumNumberOfLoginAttemptswelcomeMessage)与特定类型的值(如数字10或字符串"Hello"相关联。常量的值一旦设置就无法更改,而变量将来可以设置为不同的值。

声明常量和变量

常量和变量在使用之前必须声明。您可以使用let关键字声明常量,并使用var关键字声明变量。以下是如何使用常量和变量来跟踪用户尝试登录次数的示例:

代码语言:javascript复制
let maximumNumberOfLoginAttempts = 10
var currentLoginAttempt = 0

此代码可以读作:

“声明一个名为maximumNumberOfLoginAttempts的新常量,并给它的值10。然后,声明一个名为currentLoginAttempt的新变量,并给它一个初始值0。”

在本例中,允许的最大登录尝试次数被声明为常量,因为最大值永远不会改变。当前登录尝试计数器声明为变量,因为每次登录尝试失败后,此值必须递增。

您可以在一行上声明多个常量或多个变量,用逗号分隔:

代码语言:javascript复制
var x = 0.0, y = 0.0, z = 0.0

注意 如果代码中的存储值不会更改,请始终将其声明为带有let关键字的常量。仅使用变量来存储需要能够更改的值。

类型注释

您可以在声明常量或变量时提供类型注释,以明确常量或变量可以存储的值类型。通过在常量或变量名称后放置冒号,后跟空格,后跟要使用的类型名称来编写类型注释。

此示例为名为welcomeMessage的变量提供了一个类型注释,以指示该变量可以存储String值:

代码语言:javascript复制
var welcomeMessage: String

声明中的冒号的意思是“类型……”,因此上面的代码可以理解为:

“Declare a variable called welcomeMessage that’s of type String.”

String类型”一词的意思是“可以存储任何String值”。把它想象成“可以存储的东西的类型”(或“东西的类型”)。

welcomeMessage变量现在可以设置为任何字符串值,没有错误:

代码语言:javascript复制
welcomeMessage = "Hello"

您可以在一行上定义同一类型的多个相关变量,用逗号分隔,并在最终变量名称后面添加单个类型注释:

代码语言:javascript复制
var red, green, blue: Double

注意 在实践中,您很少需要编写类型注释。如果您在定义的点为常量或变量提供初始值,Swift几乎总是可以推断用于该常量或变量的类型,如类型安全和类型推断中所述。在上面的welcomeMessage示例中,没有提供初始值,因此welcomeMessage变量的类型用类型注释指定,而不是从初始值推断。

命名常量和变量

常量和变量名几乎可以包含任何字符,包括Unicode字符:

代码语言:javascript复制
let π = 3.14159
let 你好 = "你好世界"
let 


	

0 人点赞