1、了解Swift

swift是完全开源的:https://github.com/apple/swift,主要由C++编写

2、swiftc

相当于OC的clang
将swift代码转成汇编代码:

  1. $ swiftc -emit-assembly main.swift -o main.s

3、Hello world!

新建一个命令行项目,编译器会自动添加一行代码:

  1. print("Hello, World!")

swift项目不用编写main函数,Swift将全局范围内的首句可执行代码作为程序入口
swift每行代码结尾是不用写分号 ( ; ) ,多句代码写到同一行必须用分号 ( ; ) 隔开

4、变量和常量

swift用var定义变量,let定义常量,编译器能自动推断出变量/常量的类型
例如定义一个常量a和一个变量b

  1. var a = 10
  2. let b = 20
  3. a = 20
  4. b = 20

a可以被重新赋值,b重新赋值就会报错 ! Cannot assign to value: ‘b’ is a ‘let’ constant

5、print

打印a和b:

  1. print(a)
  2. print(b)

打印结果:

  1. 10
  2. 20

也可以和字符串一起打印,使用( )方式包裹要打印的对象

  1. print("a = \(a), b = \(b)")

打印结果:

  1. a = 10, b = 20

6、注释

注释支持单行注释、多行注释(多行支持嵌套)
支持markup语法,只在playground文件中支持
截屏2022-01-05 下午2.38.18.png

7、数据类型

常量

只能赋值一次
它的值不要求在编译时期确定,但使用之前必须赋值1次

标识符

几乎可以使用任何字符

常见数据类型

值类型:枚举、结构体
引用类型:类
Int、Float都是结构体

为什么是结构体,不是基本数据类型?
结构体比较方便?
结构体可以添加方法,比如Int.max

字面量

  1. // 布尔
  2. let bool = true
  3. // 字符串
  4. let string = "abc"
  5. // 字符
  6. let c: Character = "a"

类型转换

  1. let a: Int = 3
  2. let b: Float = 3.14
  3. let c = Int(b)

元组(tuple)

  1. let error = (404, "Not Found")
  2. error.0
  3. error.1

可以将不同类型的数据放在一起