Swift From Scratch:简介


2014年,Apple推出了一种全新的编程语言Swift,这使开发人员社区感到惊讶。 Swift已经走了很长一段路,很难相信这种语言今年正在庆祝其成立三周年。 几个月前,苹果公司发布了Swift 3,这是该语言的一个重要里程碑。 在本系列中,我将向您介绍Swift 3的基础知识。

如果您使用Objective-C开发iOS或macOS应用程序,Swift会感到很熟悉,但是有许多重要的区别。 我将通过向您展示Swift与Objective-C的不同之处以及为什么这些差异是一件好事,来开始本系列文章。 让我们开始吧。

1.先决条件

程式设计

在整个系列文章中,我都会引用Objective-C,并将Swift编程语言与Objective-C进行比较。 但是,为了跟进, 不需要熟悉Objective-C

这就是说,您有一种编程语言的经验是很重要的。 尽管本系列文章主要介绍Swift,但并未涵盖编程的基础知识。 我希望您熟悉变量,常量,函数,控制流和面向对象的编程。

如果您熟悉Objective-C,Java,Ruby,PHP或JavaScript,那么理解本系列中介绍的概念就不会有问题。 实际上,您会注意到Swift与许多流行的编程语言(包括Objective-C)具有相似之处。

Xcode

Xcode 8仅支持Swift 3,并且需要安装最新版本的Apple IDE(集成开发环境)。 您可以从App StoreApple的Developer Center下载Xcode。

2.迅捷

与Objective-C或Java相比,Swift是一种表达力强,简洁的语言,通常使我想起Ruby和JavaScript。 尽管Swift的创建者Chris Lattner受到了其他语言的启发,但是Swift还是一种独立的语言。

您可能知道,Objective-C是C的严格超集。但是,Swift不是。 尽管Swift使用花括号并与C编程语言共享多个关键字,但它与C不兼容。

Swift是一种直观的现代编程语言,特别是如果您习惯于使用基于Java或C的编程语言(例如Objective-C)时,尤其如此。 在Swift的开发和设计过程中,克里斯·拉特纳(Chris Lattner)专注于许多关键特征,最终定义了该语言。

安全

安全是Swift的基础之一。 在本系列中,您会很快了解到Swift在安全性方面与Objective-C有很大的不同,这直接影响了您编写的代码。 如果您使用过Objective-C,这需要一些习惯。

LLVM

克里斯·拉特纳 Chris Lattner)还设计了LLVM(低级虚拟机)编译器 ,Swift是使用LLVM编译器构建的,这不足为奇。 结果就是速度,功率和可靠性。 在大多数情况下,Swift的运行速度明显快于Objective-C。 如果您对实质内容感兴趣,请阅读Jesse Squires的这篇文章

类型推断

类型安全性是Swift的主要功能之一。 Swift会在编译时检查您的代码,并警告您类型不匹配。 这意味着您可以及早发现错误,避免了一系列常见错误。

幸运的是,Swift可以帮助您。 Swift通常足够聪明,可以推断变量和常量的类型,这意味着您不必显式声明每个变量或常量的类型。 在下面的代码片段中,我们声明一个变量a并为其分配值"this is a string" 。 Swift很聪明,可以推断出aString类型。

var a = "this is a string"

这是一个简单的示例,但是您会发现Swift也可以处理更复杂的场景。

变量和常量

常量在C和Objective-C中很有用,但是大多数开发人员很少使用它们。 在Swift中,常数与变量一样重要且通用。 如果变量的值不变,则该变量应为常数。 使用var关键字声明变量。 常量使用let关键字声明。

var a = 1 // variable
let b = 1 // constant

这不仅改善了意图,而且还通过确保不会意外更改变量的值来提高安全性。 在本教程的后面,我们将详细介绍变量和常量。

分号

在Swift中,不需要分号。 例如,您可以使用分号在同一行上编写多个语句,但是它们是可选的。 请看以下示例,以更好地了解Swift中分号的使用。

var a = 1
var b = 2

var c = 1; var d = 2;

我们只是在摸摸表面。 您将在本系列中了解更多的功能和概念。 建议您不要通过编写一些代码来让您精疲力尽,而是建议您编写一些代码。 这使我们进入了Swift和Xcode的最佳功能之一:游乐场。

3.游乐场

苹果在Xcode 6中引入了游乐场。游乐场是学习Swift的理想工具。 游乐场是一个交互式环境,您可以在其中编写Swift并立即查看结果。 它不仅使学习Swift更有趣,而且比在Xcode中设置项目更快,更直观。

事实上,它非常容易,您不妨进入并创建您的第一个游乐场。 打开Xcode 8,然后从“ 文件”菜单中选择“ 新建”>“游乐场... ”。 命名游乐场,并将Platform设置为iOS

创建一个新的游乐场

告诉Xcode您想在哪里保存游乐场,然后单击创建 。 游乐场没有创建带有一堆文件和文件夹的项目,而无非就是扩展名为.playground的文件。 操场不仅仅是引擎盖下的文件,但这不是我们现在需要担心的。

呈现给您的用户界面再简单不过了。 在左侧,您将看到一个代码编辑器,该代码编辑器的顶部带有注释,一个用于导入UIKit框架的import语句,以及一行不难理解的代码。 在右侧,您会在左侧看到由代码生成的输出或结果。

Xcode中游乐场的用户界面

让我们花一点时间来了解新操场中的代码。 如果您使用过Objective-C,PHP或JavaScript,则第一行看起来应该很熟悉。 Swift中的注释以两个斜杠开头,对于多行注释,以/*开头,以*/结束。

因为我们在创建Playground时选择了iOS作为平台,所以Xcode为UIKit框架添加了import语句。 这使我们可以访问UIKit框架中定义的每个符号。

第三行看起来很熟悉,但是有一些细节需要澄清。 我们声明一个变量str并为其分配一个字符串。 这行代码很容易理解,但是请注意,变量的名称以var关键字开头,而不是您在Objective-C中期望的变量类型。 Objective-C中的同一条语句看起来像这样。

NSString *str = @"Hello, playground";

在Objective-C中,我们将var关键字替换为变量的类型,在字符串前面添加@符号,并在语句后使用分号结束。 重要的是要了解var关键字不会替代 Objective-C中的类型说明符。 无非就是一个关键字,它表明str是变量,而不是常量。

让我详细解释一下。 将以下代码行添加到操场上。

let hello = "Hello, playground"

let关键字告诉编译器hello是常量,而不是变量。 strhello均为String类型,但str是变量, hello是常量。 如果再添加两行代码,则区别很容易理解。

str = "This is a variable."
hello = "This is a constant."

str分配新值不会带来问题。 但是,将新值分配给hello导致错误。 Xcode告诉我们它不能为hello分配值,因为hello是常量,而不是变量。 这是Swift的另一个关键功能,需要一些时间来习惯。

常量的值不能更改

这个想法很简单。 如果变量的值不会改变,则应为常量而不是变量。 尽管这似乎是一个语义细节,但我保证它可以使您的代码更安全且更不易出错。 请做好准备,因为在本系列文章中您会经常看到let关键字。

在本系列中,我们广泛使用游乐场,因为这是学习语言的好方法。 我们还没有介绍其他一些强大的游乐场功能,但是我们首先需要了解Swift语言的基础知识,然后才能从中受益。

结论

我仍然必须遇到一个不喜欢Swift的开发人员,这是在说些什么。 Swift有很多概念,需要一些习惯,但是我相信您最终也会喜欢Swift,并欣赏它的功能,优雅和简洁。 在本系列的下一部分中,我们将开始探索Swift的基础知识。

无论您是刚刚开始使用基础知识还是想探索更高级的主题,我们都构建了完整的指南来帮助您学习Swift

或查看有关Swift和iOS开发的其他一些教程和课程!

翻译自: https://code.tutsplus.com/tutorials/swift-from-scratch-introduction--cms-22598

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值