本文概述
老实说, 尽管可能不想在这种环境下完全使用这种语言来创建应用程序或类似的东西, 但是你可能会发现, 在Windows环境下使用该语言进行编程只是为了学习该语言本身, 并且它的语法。值得一提的是, 并非所有人都能负担得起使用该语言的苹果设备的购买, 因此, 如果你是在Windows环境中工作的苹果设备之一, 并且你可能想向自己介绍Swift语言, 那么你会发现正确的入门文章。
Swift语言是一种高性能的系统编程语言, 语法非常简洁现代, 可无缝访问现有的C和Objective-C代码及框架, 默认情况下是内存安全的。尽管受Objective-C和许多其他语言的启发, 但是Swift本身并不是C衍生的语言。作为一种完整且独立的语言, Swift将诸如流控制, 数据结构和功能之类的核心功能与诸如对象, 协议, 闭包和泛型之类的高级构造相结合。 Swift包含模块, 从而消除了对标头和它们所需要的代码重复的需求。开源SwiftForWindows项目为Windows应用程序的Swift编程提供了易于使用的开发环境。该项目与适用于Cygwin, MSVC, MinGW的Swift编译器一起使用。
在本文中, 我们将为你展示在Windows环境中使用Swift语言进行编程的简单方法。
1.下载SwiftForWindows编译器
第一步, 你需要从Github上项目的发行页面下载Swift For Windows的安装程序。安装程序文件大小约为110MB, 由你决定安装位置。默认情况下, 其安装路径为C:/ Swift。现在, 你需要了解项目的工作原理, 在安装Swift For Windows之后, 你基本上将拥有一个可作为编译器使用的可执行文件, 它提供了图形用户界面, 可让你选择所需的swift源文件。编译:
你需要在运行文件之前对其进行编译, 因此, 如果你的代码有效, 并且单击”编译”, 则可以使用”运行”按钮运行该文件, 如果有任何内容, 通常会打开一个命令提示符并显示代码的输出当然。有关此项目的更多信息, 请访问Github上的官方资源库。
2.测试编译器
要开始使用编译器, 让我们编写一些代码!在系统上的某个地方创建一个文件hello.swift。该文件内部将包含以下代码:
print("Hello World !")
要定义编译器应编译的文件, 请单击”选择文件”。这将打开系统文件浏览器, 并允许你选择一个文件, 选择我们刚刚创建的文件。在此环境上运行Swift代码的步骤如下:
- 点击编译
- 如果编译成功, 请单击”运行”。
使用我们在hello.swift文件中编写的代码, 输出将是:
请注意, 在打开带有Swift代码输出的命令提示符时, 编译器工具将被阻止, 因此请确保在尝试再次编译之前关闭cmd窗口。但是, 并非生活中的一切都在你学习的每种新编程语言上打招呼!你可能要开始使用更复杂的代码, 例如fibonacci系列。创建一个新文件fibonacci.swift并粘贴以下代码:
class FibIterator : IteratorProtocol {
var (a, b) = (0, 1)
func next() -> Int? {
(a, b) = (b, a + b)
return a
}
}
let fibs = AnySequence{FibIterator()}
print(Array(fibs.prefix(10)))
编译并运行它。如预期的那样, 输出将是:
关于日志
在编译期间, 编译器将具有直接显示在应用程序中的日志。该日志包含正在编译的代码的警告, 注释或错误。你不会总是在输出中得到一条成功编译的消息, 因此你将需要注意日志中的另一种消息。请注意, 一旦你运行了已编译的代码(这意味着你的应用程序已成功编译, 只要没有较旧的程序版本), 该日志就会被删除, 因此在尝试编译后立即对其进行检查。像在每个理智的编译器上一样, 你将获得发生异常/警告的行和字符。
失误
编译器将能够处理编译期间的错误, 例如, 使用以下代码应在输出中显示日期:
let date = Date()
let calendar = Calendar.current
let components = calendar.dateComponents([.year, .month, .day], from: date)
let year = components.year
let month = components.month
let day = components.day
print(year)
print(month)
print(day)
将抛出以下错误(错误:使用未解决的标识符”日历”和”日期”):
代码中的错误是由于代码” import Foundation”开头缺少import语句引起的, 功能片段显示在警告区域。
警告事项
编译器也将显示警告, 如果我们修复了先前的片段, 即导入Foundation名称空间, 则我们的代码将成功编译:
import Foundation
let date = Date()
let calendar = Calendar.current
let components = calendar.dateComponents([.year, .month, .day], from: date)
let year = components.year
let month = components.month
let day = components.day
print(year)
print(month)
print(day)
但是, 我们会收到一些警告和提示:
- 警告:表达式从” Int?”隐式强制转换去任何。此警告是打印功能的触发原因, 需要一组Any参数。字符串是Any。在这种情况下, 编译器会告诉你它将可选字符串隐式强制为Any对象(通过转换Optional(value)中的String值)。
- 注意:强制拆开该值, 以避免出现此警告。如果对象是可选的, 并且你想访问其方法或属性之一, 则需要对其”展开”。
我们正在运行的代码的输出将是:
总之, 你可以了解使用Swift编程语言或至少在Windows中使用其语法的入门非常容易。请注意, 由于没有公开在Windows中如何执行特定操作(例如打开文件浏览器, 程序或相关程序)的官方API, 因此该项目完全是为了在不同环境中严格学习该语言而设计的。
编码愉快!