1.Playground学习语法
1.语法要点
1.不用编写main函数,Swift将全局范围内的首句可执行代码作为程序入口
2.一句代码尾部可以省略分号(;),多句代码写到同一行时必须用分号(;)隔开
3.用var定义变量,let定义常量,编译器能自动推断出变量\常量的类型
2.Playground可以快速预览代码效果,是学习语法的好帮手
运行整个Playground: Command + Shift + Enter
运行截止到某一行代码:Shift + Enter
3.框架引入
import UIKit // 系统框架
import PlaygroundSupport // Playground支持试图显示
// 设置UIView
let view = UIView()
view.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
view.backgroundColor = UIColor.red
PlaygroundPage.current.liveView = view
// 显示UIImageView
let imageView = UIImageView(image: UIImage(named: "logo"))
PlaygroundPage.current.liveView = imageView
// 设置tableViewVC
let vc = UITableViewController()
vc.view.backgroundColor = UIColor.lightGray
PlaygroundPage.current.liveView = vc
3.支持多Page设置
右键->New Playground Page
File ->New -> Playground Page
2.注释
开启markup渲染效果:Editor -> Show Rendered Markup n
注意:Markup只在Playground中有效
// 单行注释
/*
多行注释
/*
多行注释
*/
markup语法
## 二级标题
### 三级标题
*/
//: # 一级标题
/*:
# 学习Swift
## 基础语法
- 变量
- 常量
## 面向对象
1. 类
2. 属性
3. 方法
## 汇编分析
[苹果官方](https://www.apple.com)
*/
//: [下一页](@next)
//: [上一页](@previous)
3.常量
1.只能赋值1次
2.它的值不要求在编译时期确定,但使用之前必须赋值1次
func getAge() -> Int {
return 10
}
let age = getAge()
print(age)
4.标识符
- 标识符(比如常量名、变量名、函数名)几乎可以使用任何字符
- 标识符不能以数字开头,不能包含空白字符、制表符、箭头等特殊字符
5.Swift下常见数据类型
值类型(value type):
1.枚举(enum) Optional
2.结构体(struct):Bool、Int、Float、Double、Character、String、Array、Dictionary、Set
引用类型(reference type): 类(class)
整数类型:Int8、Int16、Int32、Int64、UInt8、UInt16、UInt32、UInt64
在32bit平台,Int等价于Int32;在64bit平台, Int等价于Int64
整数的最值:UInt8.max、Int16.min
一般情况下,都是直接使用Int即可
浮点类型:Float,32位,精度只有6位;Double,64位,精度至少15位
6.字面量
let intdecimal = 17 // 十进制
let intBinary = 0b10001 // 二进制
let intOctal = 0o21 // 八进制
let intHexdecimal = 0x11 // 十六进制
let doubleDecimal1 = 234 // 十进制
let doubleDecimal2 = 2.34e2 // 十进制 2.34*10^2
let doubleHexdecima1 = 0xFp2 // 十六进制 15*15^2
let doubleHexdecima2 = 0xFp-2 // 十六进制 15*15^-2
let Array = ["1","2","3"] //数组
let dict = ["age":18,"height":180] // 字典
7.类型转换
let int1: Int16 = 17
let int2: Int8 = 2
let int3 = int1+Int16(int2) // 不同数据类型,需要转换
let res = 1+3.14 // 字面量可以直接相加,字面量本身没类型
8.元组
// 方式一
let error = (404, "Not Found")
error.0
error.1
// 方式二
let http200Status = (statusCode:200, description:"OK")
http200Status.statusCode
http200Status.description