基础: 静态定义,动态推导
1、每一句的分号是可选的;如果多条语句在一行,必须加上分号
2、如果不指定变量(var)的数据类型,则必须在定义变量时初始化 var id
如果指定变量(var)的数据类型,可以不初始化 var id = 2
3、常量(let):无论指不指定数据类型,都必须初始化 let const1: Int = 2
4、无论是变量,还是常量,一旦确定了数据类型值类型,是不能后期改变的。
5、如果想用一个var 或者 let 定义 多个 常量 或者 变量,用逗号分隔多个变量或者常量
var v1 = “aa”, v2: Float = 20.12, v3: Bool 最后的分号可加可不加
6、 println() 输出后直接换行 ;print() 输出信息后不换行,要其换行可加“\r\n”
7、将常量或者变量 插入字符串中
1)toString() 全局函数转换为字符串
2)加号 var str = “ss” println(“this is a string” + str + “!")
3) \(变量名 或者 常量名) println(“this is a string \(str)")
注意:等号= 或者 加号+ 两端如果有空格,都要有空格,如果没有空格,都不要加空格,否者报错var a= 2 报错
8、如果非要将保留字作为变量或者常量名字,则要用反引号(`)将保留字括起来
9、变量或者常量和数据类型类型之间用冒号:分隔,冒号两端空格随意
10、数值可读性:增加了下划线来分隔数值中的数值
11、数值类型之间的转换: 类型名(变量名 或者 常量名)
将浮点数转换为整数时,采用 舍去 的方式
12、类型别名: typealias 类型别名 = 原始类型名
例如: typealias NewInt = Int32
13、字符类型的值只能存储一个(Unicode)字符, 使用 Character表示字符类型
字符 和 字符串 都要使用 双引号 括起来
要将变量 或者 常量 定义为字符类型 ,要用 Character
要将变量或者常量 声明为 Character ,双引号括起来的部分只能是一个字符,0字符或者大于1个字符都不行
14、初始化一个空的字符串 变量
1)var emptyStr1 = “"
2) var emptyStr2 = String()
15、String 类有一个unicodeScalars 属性,用于获得字符串中字符的ASCII
String 属性 uppercaseString 转为大写 lowecaseString 转为小写
16、字符和字符串、字符串和字符串 之间 都可以 用 加号 连接
17、 特殊符号用 反斜杠 (\) 转义
18、元组类型:初始化时用括号括起来
1)let / var pro = (20, “IPhone”, 5999)
2) var (id, name, price) = pro
3) 如果 不 打算 获取其中某个 或者 某些值,用下画线 屏蔽
let (_, name1 _,) = pro
println(“name is \(name1)")
4) 初始化的时候 为 每一个 元素命名
let pro = (id:30, name:"iphone", price:5999)
pro.id
pro.name
19、可选类型: 主要解决对象变量 或者 常量 为空的 情况
0) swift 没有异常捕获,可选类型有值(成功) 为 值,不成功为 nil
1)swift 值 为 nil 表示 值 为空—————OC 值为 nil 表示没有值
2)可选类型 需要在类型 后面 加上一个问号?
var numstr: String = "123"
var value: Int? = numstr.toInt()
3) 确定可选类型一定有值,则把问号变为感叹号,如果加上感叹号后无值,则中断抛出异常
所以,可以啊类型后面加上感叹号,要确保其一定有值
4) 在定义可选类型变量或者常量时,将问号改为感叹号,这样就可以直接引用这些可选类型
5) var numstr: String = "123"
var value: Int? = numstr.toInt() ------ 是问号
println(value) 输出可选类型
println(value + 4) 则报错
println(value! + 4) 127
在对可选类型进行运算的时候,一定要加上 感叹号
var numstr: String = "123"
var value: Int! = numstr.toInt() ——— 是 感叹号
println(value) 输出 123
println(value + 4) 输出127