1、数据类型
swift有整型Int、浮点型Double和Float、布尔型Bool、字符串String,还有新增的集合类型Array和Dictionary。
2、声明类型
变量、常量、元组、可选,后两种是新增类型,有具体使用场景。
3、swift特点是类型安全特点,如果声明数据类型是String,若传入Int类型,则编译报错,需要强制转换同一个类型。
疑问:变量初次赋值后,swift判定其类型,其后修改类型是否出现错误?
4、常量声明方式是let,常量就是不会再变化的值,一旦值被确定就不能更改。
5、用var来声明变量
新增命名方式:可以反引号+关键字可以作为变量和常量,注意不推荐这样命名方式
6、逗号:一行可以声明多个变量和常量并以逗号隔开
7、输出与占位符
println("hello world") //Xcode打印台输出 hellp world
如果输出变量或常量值,斜杠加括号 \(变量或常量)
8、注释:可以嵌套注释
9、整数:提供了8、16、32、64位的有符号和无符号整数类型。
如使用命名方式UInt8/Int8
整数范围可以使用:
let minValue = UInt8.min
let maxValue = UInt8.max
Int类型会根据当前平台(32或64位),其范围而变化。如指定类型范围,导致程序不同平台兼容性。
10、类型转换有不同情况需要显式进行数据类型转换:
(1)同一样类型不同范围,导致数据溢出
11、类型可以其别名,关键字typealias
typealias AudioSample = UInt16
12、元组 :括号+数据
声明元组
let http404Error = ( 404 , "Not Found" )
let http200Status = ( statusCode : 200 , msg : "OK" )
其他形式 ( Int , Bool , Int ) ( String , String , Int )
读取元组数据:
let ( statusCode , msg ) = http404Error
println("The status code is \(statusCode)")
可以用下标访问分组中某个元素,从零开始
println("\(http404Error.0)")
同样通过元素命名,获取数据
println("The status code is \(http200Status.statusCode)")
同时可以忽略一部分元组值,加上下划线
let ( statusCode , _ ) = http404Error
注意:数据结构不是临时使用,不要使用元组而使用类或者结构
13、可选使用场景是来处理值可能缺少的情况
表现形式当字符串转换整数时,转换数据有可能成整数,或失败,
所以返回可选值 类型+?
也可以强制解析可选值(可选值+!),不过你要确定可选值是有值(非nil)
可选绑定:把可选值赋值一个临时常量或者变量,进行if判断
如果为true,就可以不用强制解析可选值
14、nil不能用于非可选的常量和变量
声明可选变量或常量,若没有赋值自动设置nil
var tempVarData : String?
注意:在swift中,nil不是指针,是一个确定的值,用来表示值缺失
15、隐式解析可选,如果可选确定有值,声明可以
let iknowValue : String! = "ok"
swift有整型Int、浮点型Double和Float、布尔型Bool、字符串String,还有新增的集合类型Array和Dictionary。
2、声明类型
变量、常量、元组、可选,后两种是新增类型,有具体使用场景。
3、swift特点是类型安全特点,如果声明数据类型是String,若传入Int类型,则编译报错,需要强制转换同一个类型。
同时,可以类型标注,明显标注变量或常量的类型:
var weatherString : String = "fine"
疑问:变量初次赋值后,swift判定其类型,其后修改类型是否出现错误?
4、常量声明方式是let,常量就是不会再变化的值,一旦值被确定就不能更改。
let languageName = "swift"
疑问:可以声明先不赋值?答:可以的,一旦赋值swift自动类型检测5、用var来声明变量
新增命名方式:可以反引号+关键字可以作为变量和常量,注意不推荐这样命名方式
6、逗号:一行可以声明多个变量和常量并以逗号隔开
7、输出与占位符
println("hello world") //Xcode打印台输出 hellp world
如果输出变量或常量值,斜杠加括号 \(变量或常量)
8、注释:可以嵌套注释
9、整数:提供了8、16、32、64位的有符号和无符号整数类型。
如使用命名方式UInt8/Int8
整数范围可以使用:
let minValue = UInt8.min
let maxValue = UInt8.max
Int类型会根据当前平台(32或64位),其范围而变化。如指定类型范围,导致程序不同平台兼容性。
10、类型转换有不同情况需要显式进行数据类型转换:
(1)同一样类型不同范围,导致数据溢出
(2)不同类型转换,如整型转换字符串
let numOne : Int = 1
let numTwo : Double = 1.2
let sumResult = (Double)numOne + numTwo
11、类型可以其别名,关键字typealias
typealias AudioSample = UInt16
12、元组 :括号+数据
声明元组
let http404Error = ( 404 , "Not Found" )
let http200Status = ( statusCode : 200 , msg : "OK" )
其他形式 ( Int , Bool , Int ) ( String , String , Int )
读取元组数据:
let ( statusCode , msg ) = http404Error
println("The status code is \(statusCode)")
可以用下标访问分组中某个元素,从零开始
println("\(http404Error.0)")
同样通过元素命名,获取数据
println("The status code is \(http200Status.statusCode)")
同时可以忽略一部分元组值,加上下划线
let ( statusCode , _ ) = http404Error
注意:数据结构不是临时使用,不要使用元组而使用类或者结构
13、可选使用场景是来处理值可能缺少的情况
表现形式当字符串转换整数时,转换数据有可能成整数,或失败,
所以返回可选值 类型+?
如何使用可选值?
用if语句进行判定一个可选值,如果有值,则true,否则false也可以强制解析可选值(可选值+!),不过你要确定可选值是有值(非nil)
可选绑定:把可选值赋值一个临时常量或者变量,进行if判断
如果为true,就可以不用强制解析可选值
14、nil不能用于非可选的常量和变量
声明可选变量或常量,若没有赋值自动设置nil
var tempVarData : String?
注意:在swift中,nil不是指针,是一个确定的值,用来表示值缺失
15、隐式解析可选,如果可选确定有值,声明可以
let iknowValue : String! = "ok"
println("\(iknowValue)")
注意:此值为nil,则会报错
16、断言:用于调试程序来找值的缺失,如果是false,结束执行代码,打印自定义信息
assert( 逻辑判断 true/false , 字符串/可以省略)