美文网首页
01_Swift基础语法

01_Swift基础语法

作者: LazyLoad | 来源:发表于2020-09-11 17:39 被阅读0次

前言

为什么要学习Swift?(个人观点)

  1. Swift是苹果公司推出的语言,目的是为了取代Objective-C,未来苹果公司一定会加大Swift的推广和发展。
  2. Swift5.x的ABI已经稳定,这就意味着Swift不会发生巨大的改变,即使再更新一些版本,也不会出现项目大面积的报错,一些函数无法使用的情况了。
  3. iOS作为大前端的一份子,整个大前端的趋势偏向了声明式的编程,比如Vue、React、Flutter、微信小程序等,而且苹果也在iOS13出现的时候,发布了SwiftUI这种声明式编程的方式。而SwiftUI的使用基于掌握Swift语言的。

综上,现阶段作为一个iOS开发者,掌握Swift语言已经是必备的了。

学习Swift最权威的地址就是他的官方文档

Swift是开源的,我们可以从GitHub上获取Swift源码

废话不多说,我们一起来学习和探索Swift吧。

基础语法

来到了Swift的世界,我们首先是和这个世界打个招呼。Hello World! 是学习一门语言的必经之路!

print("Hello World!") // Hello World!

在Swift中,一般情况下,一句代码的结尾是可以省略分号(;)的。什么时候需要加分号呢?当两句代码写在同一行的时候,需要用分号隔开。

1.1 常量和变量

  • 使用let关键字声明一个常量,常量一旦声明成功,是不能再修改的,只能被赋值1次。如果尝试修改常量的值,在编译时就会报错
  • 常量的值不要求在编译时期确定,也就是说它可以接收一个函数的返回值(这里的函数了解一下即可,后面会详细说)。
// 声明一个常量
let num = 10

num = 20 // 报错 Cannot assign to value: 'num' is a 'let' constant
---------------------------------------------------------------------------------------------
func getNum() -> Int {
    return 30
}
// 接收一个函数的返回值
let num = getNum()
  • 如果想要值可以被修改,就要使用变量,关键字为var
// 声明一个变量
var num2 = 20
num2 = 40
print(num2) // 40

以上我们定义了一个常量,一个变量,而我们却没有指定他们的类型。这是因为Swift的编译器会自动进行类型的推导,以上2个例子编译器会将他们自动推导为Int类型。我们是可以查看他们的类型的,这里介绍一种方式,按住option键(会出现一个问号,点击变量/常量就可以看到他的具体类型了。

  • 常量/变量在使用之前一定要被初始化,否则编译器会报错,不像Objective-C编译器会有一个默认值。
  • 如果只写了前2句代码,编译器是不会报错的,仅仅是指定了他们的类型,一旦想要获取他们的值,编译器就会报错,因为他们根本就没有默认值
let a:Int
var b:Int
print(a) // Constant 'a' used before being initialized
print(b) // Variable 'b' used before being initialized
  • 常量/变量没有指定类型,编译器报错。编译器都不知道他是什么类型的,所以直接报错了
let c  // Type annotation missing in pattern

1.2 整型和浮点类型

Swift中定义了许多整数类型:Int8Int16Int32Int64UInt8UInt16UInt32UInt64。后面的数值代表的是位数。

而我们最 常用的是Int类型,在不同的平台下,Int类型代表不同的位数,32位平台Int相当于Int32,而64位平台Int相当于Int64

浮点类型有2个:FloatDouble

Float:32位精度只有6位。

Double:64位精度至少15位。

如果不明确指定类型,编译器默认推导为Double类型。

let value = 10.0 // Double 类型

1.3 字符串插值

  • Swift中有自己的方式进行字符串的插值,在需要拼接的字符串中,使用\(变量/常量/表达式)的方式进行字符串插值
let name = "YaoMing"
let age = 39
print("My name is \(name) and My age is \(age + 1)")
// My name is YaoMing and My age is 40

1.4 元组类型

Swift中大部分类型其他语言中都有,但是元组类型是很多语言中没有的。

元组可以将多个值分组成为一个复合值,元组中的值可以是不同类型的。下面的例子中,用元组来表示网络请求一些状态

当我们需要返回多个值的时候,就可以使用元组类型

  • 通过索引获取元组中对应的值(可读性一般)
let http404Error = (404, "Not Found")
print("The status code is \(http404Error.0)")
print("The status message is \(http404Error.1)")
  • 通过变量/常量 分解元组的内容(可读性比较好)
let (statusCode, statusMessage) = http404Error
print("The status code is \(statusCode)")
print("The status message is \(statusMessage)")
  • 通过使用下划线,忽略部分值
let (justTheStatusCode, _) = http404Error
print("The status code is \(justTheStatusCode)")

1.5 类型安全

Swift是类型安全的语言,不同类型的数据是不能相互进行传值和计算的。

let x: Int = 20
let y: Double = 3.13

let result = x + y // 报错 Binary operator '+' cannot be applied to operands of type 'Int' and 'Double'
let result1 = x + Int(y)
let result2 = Double(x) + y
print(result1)
print(result2)

相关文章

  • 01_Swift基础语法

    前言 为什么要学习Swift?(个人观点) Swift是苹果公司推出的语言,目的是为了取代Objective-C,...

  • 【Android】知识点汇总,坚持原创ing

    Android基础 Java基础 Java基础——Java内存模型和垃圾回收机制 语法基础 语法基础——C语法基础...

  • java

    语法基础1.1 java初体验(语法基础)1.2 变量和常量(语法基础)1.2 变量和常量(语法基础)1.4 流程...

  • 软帝学院:80道java基础部分面试题(四)

    Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集...

  • 快速上⼿ Kotlin

    快速上⼿ Kotlin 基础语法 函数基础语法 与 Java 代码互调 Java 与 Kotlin 交互的语法变化...

  • Java面试题知识点

    1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...

  • Java初级面试题

    1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...

  • 高考英语基础语法单句语法填空

    高考英语基础语法单句语法填空

  • Go语言基础语法--注释、基础结构2

    章节 GO语言基础语法--注释、基础结构(重要) 1.GO语言基础语法---注释、基础结构 基础结构注意事项 源文...

  • Swift5.1——前言

    主要是针对Swift5.1,基础语法,和内部剖析。 基础语法 基础语法 流程控制 函数 枚举 可选项 为什么选择S...

网友评论

      本文标题:01_Swift基础语法

      本文链接:https://www.haomeiwen.com/subject/ykebektx.html