初识Swift
Swift是2014年WWDC正式发布的,是一门安全、高效、现代化的高级开源编程语言,富有变现力和乐趣。
Hello Swift
第一个Swift程序,打印"Hello Swift"。不用编写main函数,将全局首句可执行的代码作为程序的入口。不用在每条语句的末尾写上分号(;),多条语句写在同一行需要用分号分割。
print("Hello Swift")
Swift注释
Swift里的注释跟Objective-C中的注释类似,//单行注释,用/**/包裹多行注释,只不过Swift中的多行注释支持嵌套模式。
//单行注释
/*
这里是多行注释
*/
Swift中的标识符
Swift中的标识符(如常量名、变量名、函数名)几乎可以使用任何字符,不能以数字开头,不能包含空白符、制表符、箭头等特殊字符。
Swift变量与常量
Swift中用关键字var定义变量,用关键字let定义常量。
//定义变量
var age = 10
var x = 0.0, y = 0.0, z = 0.0
var red, green, blue: Double //都是Double类型
var red, green:Int, blue: Double //前俩是Int类型
//定义常量
let PI:Double = 3.1415926
Swift中变量及常量需要注意的地方
- 变量、常量在初始化之前都不能使用
- 常量不必在编译时就知道它的值(其它语言比如C语言则不能),但在使用之前必须赋值一次
使用Swift中的保留关键字
用``(键盘左上角的反勾号)包裹Swift中的保留关键字可以用来命名。避免这种用法,除非万不得已。
//使用Swift保留关键字
let `let` = "let"
print(`let`) //打印let
Swift中的数据类型
- 整数类型:Int8、Int16、Int32、Int64、UInt8、UInt16、UInt32、UInt64。在32bit平台,Int等价于Int32;在64bit平台,Int等价于Int64。
- 浮点类型:Float,32位,精度只有6位;Double,64位,精度至少16位。
字面量
//布尔
let b = true
//字符串
let str = "String"
//字符
let cat:Character = ""
//整数
let decimalInteger = 17
let binaryInteger = 0b10001 // 17 in binary notation
let octalInteger = 0o21 // 17 in octal notation
let hexadecimalInteger = 0x11 // 17 in hexadecimal notation
//浮点数
let decimalDouble = 12.1875
let exponentDouble = 1.21875e1
let hexadecimalDouble = 0xC.3p0 //16进制表示10进制里面的12.1875
/*
1.25e2 相当于 1.25 x 102, or 125.0.
1.25e-2 相当于 1.25 x 10-2, or 0.0125.
0xFp2 相当于 15 x 22, or 60.0.
0xFp-2 相当于 15 x 2-2, or 3.75.
*/
//字面量直接相加,因为数字字面量本身没有明确的类型
let result = 3 + 0.14159
//数组
let array = [2,4,6,8,10]
//字典
let dict = ["widtd":4.0,"height":5.0]
类型转换
//整型间转换
let twoThousand: UInt16 = 2_000
let one: UInt8 = 1
let twoThousandAndOne = twoThousand + UInt16(one)
//整型、浮点型间转换
let three = 3
let pointOneFourOneFiveNine = 0.14159
let pi = Double(three) + pointOneFourOneFiveNine
/*
下面这种方式会报错
let twoThousand: UInt16 = 2_000
let one: UInt8 = 1
let twoThousandAndOne = UInt8(twoThousand) + one
*/
元组
元组将多个值组合成一个复合值。元组中的值可以为任意类型。
let httpCodeMsg = (200,"OK")
print(httpCodeMsg.0,httpCodeMsg.1)
基本运算符
运算符是检查、改变、合并值的特殊符号或短语。Swift支持大部分标准C语言的运算符,且改进许多特性来减少常规编码错误。
- 赋值运算符:=
- 算术运算符:+、-、*、/
- 取余运算符:%
- 比较运算符:>、>=、==、!=、<、<=
- 逻辑运算符:&&、!、||
- 区间运算符:闭区间a...b;半开区间a..b;单边区间符..a、...a、..a
- 空合并运算符:(a ?? b)将对可选类型a进行空判断,如果a包含一个值就进行解封,否则就返回一个默认值b。a != nil ? a! : b
(a是可选项,b跟a的存储类型必须相同。如果a不为nil,则返回a;如果a为nil,则返回b;如果b不是可选项,返回a时自动解包)
其它注意事项
- Swift3去除了自增运算符(++)、自减运算符(--)
- 与C语言和Objective-C不同,Swift的赋值操作并不返回任何值。所以以下代码是错误的,可以避免把==写成=。
if x = y { //此句错误, 因为 x = y 并不返回任何值 }