Swift版本
Swift版本
-
历时5年发展,从Swift l.x发展到了Swift5.x版本,经历了多次重大改变,ABI终于稳定
-
API ( Application Programming Interface):应用程序编程接口
- 源代码和库之间的接口
-
ABI ( Application Binary Interface):应用程序二进制接口
- 应用程序与操作系统之间的底层接口
- 涉及的内容有:目标文件格式、数据类型的大小布局\对齐、函数调用约定等等
-
-
随着ABI的稳定, Swift语法基本不会再有太大的变动,此时正是学习Swift的最佳时刻
swiftc
-
swiftc存放在Xcode内部
- Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
-
一些操作
- 生成语法树: swiftc -dump-ast main.swift
- 生成最乘法的SIL代码: swiftc -emit-sil main.swift
- 生成LLVM IR代码: swiftc -emit-ir main.swift -o main.ll
- 生成汇编代码:swiftc -emit-assembly main.swift -o main.s
-
对汇编代码进行分析,可以真正掌握编程语言的本质
Playground
下面的代码是用 Playground
来创建视图
import UIKit
import PlaygroundSupport
let view = UIView()
view.frame = CGRect(x:0, y: 0, width: 100, height: 100)
view.backgroundColor = UIColor.red;
PlaygroundPage.current.liveView = view
注释
- Playground的注释支持markup语法(与markdown相似)
- Swift支持多行嵌套注释
常量
- 只能赋值一次
- 它的值不要求在编译时期确定,但使用之前必须赋值一次
- 常量、变量在初始化之前,都不能使用
let age : Int
var height : Int
print(age) //报错
print(height) //报错
标识符
- 几乎可以使用任何字符
- 标识符不能以数字开头,不能包含空白字符、制表符、箭头等特殊字符
数据类型
image.png字面量
如果是字符串,不用标明类型,如下所示
var string = "myString"
如果是单个字符,默认还是字符串类型,如果想要让它为 Character
类型,一定要在定义时声明
var char : Character = "C"
数组
var array = ["1", "2", "3"]
字典
var dict = ["1":1, "2":2, "3":3]
类型转换
以下为整数转换
var a:UInt8 = 8
var b:UInt16 = 10
var c = UInt16(a) + b
print(c)
元组
var tuple = (404, "not found")
print(tuple.0)
print(tuple.1)
let (statuscode, result) = tuple
print (statuscode)
print(result)
网友评论