Swift Language开始使用Swift语言


备注

Swift标志

Swift是Apple开发的一种应用程序和系统编程语言,并作为开源分发 。 Swift与Apple的macOS,iOS,tvOS和watchOS操作系统的Objective-C和Cocoa / Cocoa触摸API互操作。 Swift目前支持macOS和Linux。社区正在努力支持Android,Windows和其他平台。

Swift开发发生在GitHub上 ;贡献通常通过拉取请求提交。

bugs.swift.org会跟踪错误和其他问题。

有关Swift开发,发展和使用的讨论在Swift邮件列表中进行

其他资源

版本

Swift版本 Xcode版本发布日期
开发开始( 第一次提交 - 2010-07-17
1.0 Xcode 6 2014年6月2日
1.1 Xcode 6.1 2014年10月16日
1.2 Xcode 6.3 2015年2月9日
2.0 Xcode 7 2015-06-08
2.1 Xcode 7.1 2015年9月23日
开源首次亮相 - 2015年12月3日
2.2 Xcode 7.3 2016年3月21日
2.3 Xcode 8 2016年9月13日
3.0 Xcode 8 2016年9月13日
3.1 Xcode 8.3 2017年3月27日

安装Swift

首先, 下载编译器和组件。

接下来,将Swift添加到您的路径中。在macOS上,可下载工具链的默认位置是/ Library / Developer / Toolchains。在终端中运行以下命令:

export PATH=/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin:"${PATH}"
 

在Linux上,您需要安装clang:

$ sudo apt-get install clang
 

如果将Swift工具链安装到系统根目录以外的目录中,则需要使用Swift安装的实际路径运行以下命令:

$ export PATH=/path/to/Swift/usr/bin:"${PATH}"
 

您可以通过运行此命令来验证您是否拥有当前版本的Swift:

$ swift --version
 

可选值和可选枚举

选项类型,用于处理缺少值。 Optionals说“有一个值,它等于x”或“根本没有值”。

一个Optional本身就是一种类型,实际上是Swift新推出的超级动力枚举之一。它有两个可能的值, NoneSome(T) ,其中T是Swift中可用的正确数据类型的关联值。

我们来看看这段代码,例如:

let x: String? = "Hello World"

if let y = x {
   print(y)
}
 

实际上,如果您在上面的代码中添加了print(x.dynamicType) 语句,您将在控制台中看到:

Optional<String>
 

串?实际上是Optional的语法糖,而Optional本身就是一种类型。

这是Optional的标题的简化版本,您可以通过命令单击Xco​​de代码中的Optional来查看:

enum Optional<Wrapped> {

 /// The absence of a value.
 case none

 /// The presence of a value, stored as `Wrapped`.
 case some(Wrapped)
}
 

可选实际上是枚举,与通用类型Wrapped相关定义。它有两种情况: .none 表示没有值,而.some 表示存在一个值,该值存储为Wrapped类型的关联值。

让我再说一遍: String? 不是String 而是Optional<String> 。事实即Optional 是一种意味着它有其自己的方法,例如mapflatMap

你在Mac上使用Swift的第一个程序(使用游乐场)

在Mac上,按照此链接从Mac App Store下载并安装Xcode。

安装完成后,打开Xcode并选择Playground入门

在此处输入图像描述

在下一个面板中,您可以为Playground命名,也可以将其保留为MyPlayground ,然后按“ 下一步”

在此处输入图像描述

选择保存Playground的位置,然后按Create

在此处输入图像描述

Playground将打开,您的屏幕应如下所示:

在此处输入图像描述

现在Playground在屏幕上,按 + cmd + Y显示调试区域

最后删除Playground中的文本并输入:

print("Hello world")
 

您应该在调试区中看到“Hello world”,在右侧边栏中看到“Hello world \ n”:

在此处输入图像描述

恭喜!你已经在Swift中创建了第一个程序!

您在iPad上的Swift Playgrounds应用程序中的第一个程序

Swift Playgrounds应用程序是开始编写Swift的好方法。要使用它:

1-从App Store下载适用于iPad的Swift Playgrounds

在此处输入图像描述

2-打开应用程序。

3-在“ 我的游乐场”选项卡中,点击左上角的+ ,然后选择空白模板。

4-输入您的代码。

5-点击运行我的代码以运行您的代码。

6-在每行的前面,结果将存储在一个小方块中。点击它以显示结果。

7-要慢慢浏览代码以跟踪它,请点击“运行我的代码”旁边的按钮。

你的第一个Swift程序

将代码写在名为hello.swift 的文件中:

print("Hello, world!")
 
  • 要在一个步骤中编译和运行脚本,请使用来自终端的swift (在此文件所在的目录中):

要启动终端,请在Linux上按CTRL + ALT + T ,或在macOS上的 Launchpad中找到它。要更改目录,请输入cd directory_name (或cd .. 返回)

$ swift hello.swift
Hello, world!

编译器是将以编程语言(源语言)编写的源代码转换为另一种计算机语言(目标语言)的计算机程序(或一组程序),后者通常具有称为目标代码的二进制形式。 ( 维基百科

  • 要单独编译和运行,请使用swiftc
$ swiftc hello.swift

这会将您的代码编译成hello 文件。要运行它,请输入./ ,然后输入文件名。

$ ./hello
Hello, world!
  • 或者使用swift REPL(Read-Eval-Print-Loop),在命令行输入swift ,然后在解释器中输入代码:

码:

func greet(name: String, surname: String) {
    print("Greetings \(name) \(surname)")
}

let myName = "Homer"
let mySurname = "Simpson"

greet(name: myName, surname: mySurname)

让我们把这个大代码分解成碎片:

  • func greet(name: String, surname: String) { // function body } - 创建一个带namesurname函数

  • print("Greetings \(name) \(surname)") - 这打印到控制台“Greetings”,然后是name ,然后是surname 。基本上\( variable_name ) 打印出该变量的值。

  • let myName = "Homer"let mySurname = "Simpson" - 使用let 命名创建常量 (值无法改变的变量): myNamemySurname 和values:分别为"Homer""Simpson"

  • greet(name: myName, surname: mySurname) - 调用我们之前创建的函数 ,提供常量 myNamemySurname 的值。

使用REPL运行它:

$  swift
Welcome to Apple Swift. Type :help for assistance.
  1> func greet(name: String, surname: String) { 
  2.     print("Greetings \(name) \(surname)") 
  3. } 
  4>  
  5> let myName = "Homer"
myName: String = "Homer"
  6> let mySurname = "Simpson"
mySurname: String = "Simpson"
  7> greet(name: myName, surname: mySurname)
Greetings Homer Simpson
  8> ^D

CTRL + D退出REPL。