程序笔记   发布时间:2022-07-05  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了有 OC 经验的程序员快速学习 Swift 语法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

前言

苹果官方推出 Swift 语言至今,已经过了 7 年之久,Swift 也更新到了 5.5 版本, 它的语法和 API 也趋向于稳定。最近闲来无事,决定开始研究这 iOS 开发编程语言的语法。因为之前有多门编程语言的使用经验,所以本文主要记录一些个人认为比较新奇的 Swift 语法

中文版 Swift 文档:https://swift.bootcss.com/ Swift 语言开源链接:https://github.com/apple/swift MJ 的 Swift 教学视频:https://www.bilibili.com/video/BV1uZ4y1T7G5

文章目录

  • 前言
  • Swift PlayGround
  • Swift 语法
    • 可选类型与nil
    • 忽略参数标签
    • 可变参数
    • inout 关键字
  • 后记

Swift PlayGround

所谓 “工欲善其事,必先利其器”。要想更好地学习 Swift 的语法,我们也需要合理使用开发工具 Xcode,通往们是通过 PlayGround 来进行 Swift 的语法练习。

我们可以通过 File -> New -> PlayGround(如下图所示),新建一个 PlayGround。

有 OC 经验的程序员快速学习 Swift 语法

接着选择 Black -> Next,完成 PlayGround 的创建。

有 OC 经验的程序员快速学习 Swift 语法

为了方便划分我们的单元练习,PlayGround 还支持多 Page 功能,每个 PlayGround Page 可以保存一份练习的 Swift 代码。我们可以通过下面两种方法新建 PlayGround Pag。

方法一:点击 File -> New -> PlayGround Page

有 OC 经验的程序员快速学习 Swift 语法

方法二:双击 PlayGround 名称,选择 New PlayGround Page。

有 OC 经验的程序员快速学习 Swift 语法

Swift 语法

可选类型与nil

在 OC 中,nil 只能赋值给 OC 对象,表示一个不指向任何对象的指针。而在 Swift 中,nil 意义有所不同,它表示值缺失(即没有值)的情况,可以用于任意类型的值缺失(包括基本类型、枚举、结构体和对象等)。

可选类型表示的是该类型的变量的值有可能出现缺失的情况,在类型后面加上 ? 就可以表示可选类型。如下所示:

// 可选类型,没赋值默认为 nil
var num: Int?

swift 是强类型语言,我们通常不能直接把可选类型直接赋值给基本类型,当我们确定可选类型变量一定包含值之后,可以在后面添加 ! 来取值。

var num: Int? = 1024
// 对可选类型进行强解析(要确保它有值)
var specialNum: Int = num!

忽略参数标签

我们在声明函数的时候,需要把写明参数名。然后与之相对地,在调用函数的时候也需要写上参数名,如下面代码所示:

func sayHello(name: String) {
	print("Hello, (name)~")
}

// 在调用的时候,需要把参数名 name: 带上
sayHello(name: "Veggie")

有时候,我们会觉得这样带参数名的函数调用方式比较麻烦,希望可以在调用的时候忽略它。这时,我们可以用忽略参数标签 _ 来简化它,用法如下面代码所示。

// 在参数标签前面加上 _	
func sayHello(_ name: String) {
	print("Hello, (name)~")
}

// 函数调用时可以不需要
sayHello("Veggie")

可变参数

Swift 像其他高级语言一样,它的函数也支持可变参数的输入。一个可变参数可以接收零个或多个参数,可以使用在参数个数不确定的场景,我们通过在参数后面添加 ... 来定义可变参数。需要注意的是,一个函数只能有一个可变参数。使用例子如下所示:

func arithmeticMean(_ numbers: Double...) -> Double {
    var total: Double = 0
    for number in numbers {
        total += number
    }
    return total / Double(numbers.count)
}

// 输出 3.0, 是这 5 个数的平均数。
print(arithmeticMean(1, 2, 3, 4, 5))

// 输出 10.0, 是这 3 个数的平均数。
print(arithmeticMean(3, 8.25, 18.75))

可以看到可变参数在传入函数后会变成对应类型的数组,因此我们在大多是场景中可以直接使用数组代替。

inout 关键字

进行函数调用的时候,我们传参默认都是进行值传递,在函数内部改变参数的值,不会引起函数外部变量的改变。当我们希望进行引用传递的时候,可以用上 inout 关键字。在传参的时候,传入的变量需要用 & 修饰,是 C 语言类似。

// 交换 a 和 b 的值
func swapValue(_ v1: inout Int, _ v2: inout Int) {
    let temp = v1
    v1 = v2
    v2 = temp
}

var a: Int = 1, b: Int = 2
// 传入的参数需要加上 &,进行地址传递
swapValue(&a, &b)
// 打印变量交换后的结果
print(a, b)

需要注意的是:

  • 可变的参数不能标记为 inout
  • 标记为 inout 的参数不能带默认值

后记

Swift 语法的快速学习,只是为了帮助我们快速看懂 Swift 项目中的代码,能够窥探其他人的编程思路,并能对现有的代码进行简单的定制化修改。

如果希望能熟练使用 Swift 语言,关键还是要自己多写,可以多利用新学的语法写小 Demo, 或者刷 LeetCode 题目。语法使用得多了,就很容易形成肌肉记忆,所谓的「Practice makes perfect」就是如此吧。


内容在持续更新中……

大佬总结

以上是大佬教程为你收集整理的有 OC 经验的程序员快速学习 Swift 语法全部内容,希望文章能够帮你解决有 OC 经验的程序员快速学习 Swift 语法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: