前言
今天分享一门课程,就是深入浅出 Swift3
由于篇幅有限,因此把教程的第一节内容摘选了出来,主要是对Swift做一个简单介绍以及编写 Swift 程序的三种基本方式;
Swift 简介:
Swift 是苹果公司推出的一门全新的编程语言。最初,它被用于编写苹果设备上(iOS,macOS,watchOS 和 tvOS)的应用程序。后来,苹果公司将 Swift 开源,从这时候起 Swift 便可以在 Linux 上运行,这也就意味着 Swift 正在向一门全端语言发展。
从 Swift 推出到 2016 年,已经走过了两年的时间,这么长的时间内,Swift 已经进化到了第三个大版本。这期间伴随着很多的变化,而对于初学编程的你,无需考虑这些内容,Swift 3 以前的版本都已经成为历史。
编写 Swift 程序的三种基本方式
1、交互式 Swift
首先,对程序员来说,最兴奋的东西莫过于终端了,开发 Swift 应用程序也是一样,我们首先启动终端:
这时候我们输入 swift,就进入 Swift 的交互程序了:
Swift 能做什么?我们先来让它解决我们最常见的问题:计算。
尝试输入 1+1 能够看到 Swift 直接告诉了我们结果:
图中的 $R0: Int = 是什么你暂时还不需要知道,在后面的内容中我们会为你介绍。
你可以尝试更复杂的运算:
等等,怎么能够少了计算机界最著名的 Hello World! 呢?在 Swift 中,如果想要输出一段内容,可以通过 print() 这个东西(我们把它叫做函数,以后会详细介绍)来输出,例如:
2、脚本式 Swift
你肯定会觉得这样的办法不够高效,每次要做点什么只能一行一行的输入,非常的不方便,我们可以尝试使用执行脚本的方式来执行 Swift,首先我们要退出交互式 Swift,输入 :q:
为了保护好我们的代码,不妨在 Code 目录下创建一个 swift 目录。
图中已经提前创建好了 swift 文件夹,你可以使用 mkdir -p Code/swift 来创建这个文件夹,再 cd Code/swift 进入这个文件夹
然后编写一个以 .swift 结尾的 Swift 文件,使用 vim:
按下 i 键启动 vim 的编辑模式,输入 print("hello swift!"):
按下键盘左上角的 Esc 来退出编辑模式,再输入 :x ,回车,来保存退出:
这时候我们回到了终端,输入 swift main.swift 就能够执行刚才我们编写的 Swift 脚本了:
3、编译 Swift
直接通过 swift xxx.swift 来执行 Swift 脚本通常是可以的,但是这和我们刚才的交互式 Swift 并没有什么两样,因为他也是一行一行处理出来的,能不能像 C/C++ 这些语言一样,编译成一个可执行的文件呢?可以的,我们可以使用 swiftc 这个命令来编译一个 .swift 程序:
swiftc main.swift
但是这次我们什么都没有看到?不,输入 ls 就可以看到在我们的文件夹中多出来了一个文件:
我们可以直接执行这个文件:
./main
回答你几个问题
1. 问:脚本是什么意思?
脚本,可以理解为『剧本』,每一部电影、电视剧都有它们自己的剧本,电影、电视剧都是根据剧本的描述,制作出来的。在计算机程序中也是如此,脚本用来描述一段程序的执行过程,在刚才的 main.swift 中,我们描述了一个输出 hello swift!的过程。
2. 问:单词 print 我认识,但是为什么要有 () 括号?为什么有 "" ?
print 是一个函数,现在你还不知道函数是什么,但你先记住如果我们要使用一个函数,让他发挥作用,就需要在函数的后面加上 ()。"" 把 hello swift! 包裹了起来,告诉 Swift 这就是我们要输出的东西(字符串, 之后会详细介绍)。
3. 问:mkdir/cd 它们是什么?
你需要先学习一下 Linux 基础课:
4. 问:什么是 vim?
你需要先学习一下 Vim 基础课:
5. 问:什么是编译?好像和使用脚本的方式没有区别?
编译是计算机程序里非常重要的一个概念,这里不去解释它的准确定义,但我们还是用刚才剧本的例子来解释这个概念:
我们刚才说脚本和剧本类似,那么编译就与电影电视剧的实际成片过程类似。我们说执行一个脚本,就是每次当我们要看这部电影的时候,都让演员按照剧本演一遍,这种方式费时费力。
而编译,则是让演员们演一遍,然后将整个过程记录到胶片里,当下次我们要观看这部电影的时候,就不需要再让演员们演一遍了,直接看成片就好了,效率得到了大大的飞跃。
总结来说,脚本就是电影剧本,编译就是记录到胶片、后期剪辑等一系列的过程、最后生成的 main 文件,就是我们实际看到的电影。
6. 问:执行的时候 ./ 是什么意思?
你需要先学习一下 Linux 基础课:
教程说明
教程没有讨论 Swift 如何去服务于 iOS/macOS 等苹果上的开发(在这些平台中,你可能听说过 Objective-C 这门语言早已服务它们多年,Swift 是专门为了用于替代它们而产生的),而是专注于讨论 Swift Open Source 在通用平台(当然,我们其实主要讨论 Swift on Linux)下的编程。
希望本教程能够成为你学习 Swift、甚至是学习编程的第一份教程。
适用读者
本教程属于新手教程,适用于毫无编程经验的读者。
教程涉及的内容
当你起步后,不妨浏览一下下面列出的关于本教程会和你介绍的东西,做到心中有数。
-
常量、变量与运算符
- let
- var
- 运算符
- 赋值运算符
- 算数运算符
- 组合赋值运算符
- 比较运算符
- 三目运算符
- 区间运算符
- 逻辑运算符
-
基础数据类型与可选类型
- Int/Double
- 布尔类型
- 类型安全与类型转换
- 字符、字符串
- 数组、字典
- 元组、集合
- 可选类型
- 可选值
- 可选值的强制拆包
-
逻辑控制流语句
- 循环语句
- for-in
- while 和 repeat-while
- 条件控制语句
- if-let
- switch
- 控制转移
- continue
- break
- fallthrough
- 循环语句
-
函数与闭包
- 函数
- 函数的定义
- 无参数函数
- 多参数函数
- 无返回值函数
- 多返回值函数
- 函数的实参标签
- 形参默认值
- 函数作为参数
- 函数的类型
- 闭包
- 闭包的定义
- 闭包类型推导
- 闭包隐式参数
- 闭包的尾随形式
- 函数
-
结构体与类
- 结构体
- 结构体初始化
- 计算属性
- 结构体方法
- 可变方法
- 类
- 类与结构体的区别
- 子类与继承
- 实例方法与类型方法
- 结构体
-
协议、扩展、枚举
-
泛型、可选链、引用计数
- 泛型
- 泛型函数
- 泛型类型
- 可选链
- 引用计数
- 泛型
-
延伸阅读:Swift API 设计则例
最后
以上呢,对Swift 做了一个大概的介绍,由于篇幅有限,而且教程内容太长,所以如果你想学习 Swift 开发呢,可以访问实验楼网站,在线学习该教程,还有配套的在线开发环境。
点击深入浅出 Swift3,即可开始学习了~








网友评论