框架
Foundation框架: 提供了⼀些基本功能,如⽇期和时间管理、字符串、集合类、⽂件管理、⽹络等
UIKit框架: UIKit是iOS的⽤户界⾯框架。UIKit中导⼊了
Foundation框架
框架在使用前要导入import Foundation
常量与变量
声明常量和变量
使用let
来声明常量,使用var
来声明变量,可以在一行中声明多个常量或变量,用逗号隔开
let a = 10
var b = 0, c = 1
常量和变量的命名
常量和变量的命名不能包含数学符号,箭头,保留的Unicode码位,连线与制表符,也不能以数字开头
基本数据类型
Int整型,Double和Float浮点型,Bool布尔值,String文本型数据(基于unicode),Array数组,Dictionary字典
不进行隐式类型转换
不提供++和–
强制计算不检查溢出可以在运算符前加&
字符类型当作String处理
类型标注
可以在声明常量或变量的时候加上类型标注,说明常量或变量中要存储的值的类型。如果要添加类型标注,需要在常量或变量名或面加上一个冒号和空格,然后加上类型名称
可以在一行中定义多个同样类型的变量,用逗号分隔,并在最后一个变量名之后添加类型标注
var message: String
var red, green, blue: Double
标准输入输出
print(c)
readLine()
注释
Swift中的注释与C语言相同,使用//
进行单行注释/*
和*/
进行多行注释
分号
如果要在同一行内写多条独立的语句,需要用分号分隔
元组
元组tuples把多个值组合成一个复合值,元组内的值可以是任意类型,不要求是相同类型
let http404Rrror = (404, "Not Found")
可以将一个元组的内容分解成单独的常量和变量,可以把要忽略的部分用下划线_标记
let (statusCode, statusMessage) = http404Error
let (statusCode, _) = http404Error
可以通过下标来访问元组中的单个元素,下标从零开始
print("The status code is \(http404Error.0)")
可以在元组定义时给单个元素命名,给元组中的元素命名后,可以通过名字来获取这些元素的值
let http200Status = (statusCode:200, description:"OK")
print("The status code is \(http404Error.statusCode)")
区间
…(全闭合) …<(半闭合)
字符串
let multiplier = 3
let message = "\(multiplier) times 2.5 is \(Double(multiplier) * 2.5)"
字符
Swift 的字符是一个单一的字符字符串字面量,数据类型为 Character
let char: Character = "A"
如果在 Character(字符) 类型的常量中存储更多的字符,则程序执行会报错
Swift 中不能创建空的 Character(字符) 类型变量或常量
数组
var shoppingList = [“Eggs”, “Milk”]
其他属性和方法:
集合
未定义顺序
字典
哈希表(key, value)
循环语句
for i in (1...number).reversed(){//reserve()逆序
}
for i in stride(from:1,to:number,by:1){//<number
}
for i in stride(from:0.5,through:15.25,by:0.3){//<=through
}
while condition {
}
条件语句
if condition {
}else{
}
switch-case语句默认break
函数和闭包
函数
func multiply(operand: Int, by: Int) -> Int {//返回值是Int类型
return operand * by
}
multiply(operand: 5, by: 6)
//swift函数的参数可以分为内部名称和外部名称
func multiply(_ operand: Int, by otherOperand: Int) -> Int {//可使用_省略外部参数
return operand * otherOperand
}
multiply(5, by:6)
var operation: (Int, Int) -> Int//(Int, Int) -> Int是一种函数类型
operation = mutiply
let result = operation(3, 4)//result = 12
闭包
自定义类型
struct and class
struct是值传递,class是引用传递
struct成员变量可以不初始化,class成员变量必须初始化
struct不支持继承,class支持继承,只能单继承
枚举Enumerations
协议Protocol
数据类型
Generics泛型
struct Array<Element> {
...
func append(_ element:Element){...}
}
var a = Array<Int>()
a.append(5)