print("hello World!")
不用编写main函数,Swift讲全局范围内的首句可执行代码作为程序的入口。
一句代码尾部可以省略分号(;),多聚代码写到同一行是必须用;断开。
用var定义变量,let定义常量,编译器能自动推断出变量/常量的类型。
Playground可以快速预览代码效果,是学习语法的好帮手
Command + Shift + Enter:运行整个Playground
Shift + Enter:运行截止到某一行代码
Playground - View
Playground - ViewController
Playground – 多Page
注释
n Playground的注释支持markup语法(与markdown相似)
Playground-View
Playground-View
Playground-ViewController
注释
Markup
Playground的注释支持markup语法(与markdown相似)
开启markup渲染效果:Editor -> Show Rendered Markup
注意:Markup只在Playground中有效
常量
/**
常量
只能赋值一次
他的值不要求在编译时期确定,但是使用之前必须赋值一次。
*/
let age1 = 10
let age2: Int
age2 = 20
func getAge() -> Int{
return 30
}
let age3 = getAge()
/**
常量、变量在初始化之前都不能使用
*/
let age: Int
var height: Int
print(age)
print(height)
// Error: Constant 'age' used before being initialized
// Error: Constant 'height' used before being initialized
标识符
/**
标识符(如常量名、变量名、函数名)几乎可以使用任何字符
标识符不能以数字开头,不能包含空白字符,制表符、箭头灯特殊字符
func 🐂(){
print("🐂牛逼")
}
🐂()
let 🆚 = "vs"
var 🏃 = "跑步"
*/
常见数据类型
a、值类型(value type)
枚举(enum)
结构体(struct)
Optional
Bool、Int、Float、Double、Character
String、Array、Dictionary、Set
b、引用类型(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位
字面量
整数和浮点数可以添加额外的零或者添加下划线来增强可读性
100_0000、 1_000_000.000_000_1、 000123.456
// bool
let bool = true // 取反是false
// 字符串
let string = "William"
// 字符 :可储存ASCII字符,和Unicode字符
let character: Character = "C"
let character1: Character = "🐩"
// 整数
let intDecimal = 10 // 十进制
let intBinary = 0b10001 // 二进制
let intOctal = 0o22 // 八进制
let intHex = 0x11 // 十六进制
// 浮点数
let doubleDecimal = 124.0
let doubleHex = 0xFp1 // 十六进制,意味着15x2^2
let doubleHex1 = 0xFp-2 // 十六进制,意味着15x2^-2
// 数组
let array = [1, 3, 4, 6]
// 字典
let dictionary = ["age": 18, "height": 168]
类型转换
// 整数类型
let int1: UInt16 = 2_000
let int2: UInt8 = 1
let int3 = int1 + UInt16(int2)
// 整数、浮点数转换
let int = 3
let double = 0.141592654
let pi = Double(int) + double
let intPi = Int(pi)
// 字面量可以直接相加,因为数字字面量本身没有明确的类型
let result = 3 + 0.14159
元组
// 元组
let http404Error = (404, "not Found")
print("status code is\(http404Error.0)")
let (statusCode, statusMessage) = http404Error
print("status code is\(statusCode)")
let (justStatusCode, _) = http404Error
let http200Status = (statusCode: 200, description:"OK")
print("status code is\(http200Status.statusCode)")