当前位置:   article > 正文

Swift 5.10官方文档(中文版,自翻)_swift 官方文档

swift 官方文档

Swift 官方文档

Welcome to Swift 中的A Swift Tour部分

A Swift Tour

https://docs.swift.org/swift-book/documentation/the-swift-programming-language/guidedtour

探索Swift的特性和语法。

​ 传统上,新语言的第一个程序应该打印“Hello, world!”,在屏幕上。在Swift中,这可以在一行中完成:

print("Hello, world!")
  • 1

​ 如果您了解其他语言,那么这个语法应该看起来很熟悉——在Swift中,这行代码是一个完整的程序。您不需要为输出文本或处理字符串等功能导入单独的库。在全局范围内编写的代码用作程序的入口点,因此不需要main()函数。您也不需要在每个语句的末尾写分号。

​ 本教程通过向您展示如何完成各种编程任务,为您提供了足够的信息来开始用Swift编写代码。如果你不懂什么也不用担心——本书的其余部分会详细解释本指南中介绍的所有内容。

1 Simple Values 简单变量

​ 使用let来创建常量,使用var来创建变量。在编译时不需要知道常量的值,但必须只给它赋一次值。这意味着您可以使用常量来命名一次确定但在许多地方使用的值。

var myVariable = 42
myVariable = 50
let myConstant = 42
  • 1
  • 2
  • 3

​ 常量或变量必须具有与要分配给它的值相同的类型。但是,您不必总是显式地编写类型。在创建常量或变量时提供值可以让编译器推断其类型。在上面的例子中,编译器推断myVariable是一个整数,因为它的初始值是一个整数。


​ 如果初始值不能提供足够的信息(或者没有初始值),那么通过将其写在变量后面,用冒号分隔来指定类型。

let implicitInteger = 70
let implicitDouble = 70.0
let explicitDouble: Double = 70
  • 1
  • 2
  • 3
实验

创建一个显式类型为Float且值为4的常量。

let explicitDouble: Double = 4
  • 1

​ 值永远不会隐式转换为另一种类型。如果需要将值转换为不同的类型,请显式地创建所需类型的实例。

let label = "The width is "
let width = 94
let widthLabel = label + String(width)
  • 1
  • 2
  • 3
实验

尝试从最后一行删除到String的转换。得到什么错误?

let label = "The width is "
let width = 94
let widthLabel = label + width # error 
  • 1
  • 2
  • 3
note: overloads for '+' exist with these partially matching parameter lists: 
note:'+'的重载存在于这些部分匹配的参数列表中:
(Int, Int), (String, String)
let widthLabel = label + width
  • 1
  • 2
  • 3
  • 4

​ 在字符串中包含值还有一种更简单的方法:将值写在括号中,并在括号前写一个反斜杠()。例如:

let apples = 3
let oranges = 5
let appleSummary = "I have \(apples) apples."
let fruitSummary = "I have \(apples + oranges) pieces of fruit."
  • 1
  • 2
  • 3
  • 4
实验

使用()来包含一个浮点数

let scores: Double = 3.5
let scoresSummary = "I have \(scores) scores."
print(scoresSummary)
  • 1
  • 2
  • 3
I have 3.5 scores.
  • 1

​ 对于占用多行的字符串,使用三个双引号(“”")。只要与结束引号的缩进匹配,每个引号行开头的缩进就会被删除。例如:

let quotation = """
        Even though there's whitespace to the left,
        the actual lines aren't indented.
            Except for this line.
        Double quotes (") can appear without being escaped.

        I still have \(apples + oranges) pieces of fruit.
        """
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

​ 使用括号([])创建数组和字典,并通过在括号中写入索引或键来访问它们的元素。最后一个元素后面可以有逗号。

var fruits = ["strawberries", "limes", "tangerines"]
fruits[1] = "grapes"


var occupations = [
    "Malcolm": "Captain",
    "Kaylee": "Mechanic",
 ]
occupations["Jayne"] = "Public Relations"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

​ 数组会随着添加元素而自动增长。

fruits.append("blueberries")
print(fruits)
// Prints "["strawberries", "grapes", "tangerines", "blueberries"]"
  • 1
  • 2
  • 3

​ 还可以使用括号编写空数组或字典。对于数组,写入[],对于字典,写入[:]。

fruits = []
occupations = [:]
  • 1
  • 2

​ 如果将一个空数组或字典赋值给一个新变量,或者赋值给另一个没有任何类型信息的地方,则需要指定类型。

let emptyArray: [String] = []
let emptyDictionary: [String: Float] = [:]
  • 1
  • 2

2 Control Flow 控制流

​ 使用if和switch来创建条件,使用for-in、while和repeat-while来创建循环。条件或循环变量周围的括号是可选的。身体周围需要支架。

let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0
for score in individualScores {
    if score > 50 {
        teamScore += 3
    } else {
        teamScore += 1
    }
}
print(teamScore)
// Prints "11"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

​ 在if语句中,条件必须是布尔表达式——这意味着诸如if score{…}是一个错误,而不是与零的隐式比较。

​ 您可以在赋值的等号(=)之后或在返回之后写入if或switch,以根据条件选择一个值。

let scoreDecoration = if teamScore > 10 {
    "
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/807150
推荐阅读
相关标签