1、了解Swift
swift是完全开源的:https://github.com/apple/swift,主要由C++编写
2、swiftc
相当于OC的clang
将swift代码转成汇编代码:
$ swiftc -emit-assembly main.swift -o main.s
3、Hello world!
新建一个命令行项目,编译器会自动添加一行代码:
print("Hello, World!")
swift项目不用编写main函数,Swift将全局范围内的首句可执行代码作为程序入口
swift每行代码结尾是不用写分号 ( ; ) ,多句代码写到同一行必须用分号 ( ; ) 隔开
4、变量和常量
swift用var定义变量,let定义常量,编译器能自动推断出变量/常量的类型
例如定义一个常量a和一个变量b
var a = 10
let b = 20
a = 20
b = 20
a可以被重新赋值,b重新赋值就会报错 ! Cannot assign to value: ‘b’ is a ‘let’ constant
5、print
打印a和b:
print(a)
print(b)
打印结果:
10
20
也可以和字符串一起打印,使用( )方式包裹要打印的对象
print("a = \(a), b = \(b)")
打印结果:
a = 10, b = 20
6、注释
注释支持单行注释、多行注释(多行支持嵌套)
支持markup语法,只在playground文件中支持
7、数据类型
常量
只能赋值一次
它的值不要求在编译时期确定,但使用之前必须赋值1次
标识符
常见数据类型
值类型:枚举、结构体
引用类型:类
Int、Float都是结构体
为什么是结构体,不是基本数据类型?
结构体比较方便?
结构体可以添加方法,比如Int.max
字面量
// 布尔
let bool = true
// 字符串
let string = "abc"
// 字符
let c: Character = "a"
类型转换
let a: Int = 3
let b: Float = 3.14
let c = Int(b)
元组(tuple)
let error = (404, "Not Found")
error.0
error.1
可以将不同类型的数据放在一起