1.常量和变量
与C、OC不同的是,swift用let定义常量,用var定义变量。
如下例:
let a = 5
var b = 10
这里a代表常量5,一旦被定义,它的值就不能被修改。b代表变量10,它可以被修改。如:
我们可以把b重赋值为20
b = 20
2.在同一行中定义多个常量或者变量
var x = 5,y = 6,z = 7 let a = "a",b = "b",c = "c",d = "d"
同时打印多个对象
println((x,y,z,a,b,c,d))
3.类型标注
声明了一个String类型的变量名字叫做nameString
var nameString: String nameString = "abcdefg" println((nameString))
常量
let count: Int count = 10 println((count))
变量
var number: Int number = 20 println((number)) number = 5 println((number))
4.常量、变量的命名(不能以数字开头,可以放在中间或结尾)
let x = "zxcv" let _name = "name" println((x))
5.输出常量和变量
使用字符串插值的方式,把当前变量名当做占位符加入到字符串中,然后加上括号和反斜杠将其转义输出
用 \()来拼接字符, \后不能加空格
var juiceName = "apple Juice" println("I Love \(juiceName)") var iosDevice = "iphone6" println("I want a \(iosDevice)")
6.注释
//单行注释 /* 多行注释(OC中不允许下面的多行嵌套注释) */ /* 这是第一个多行注释的开头 /* 这是第二个多行注释的开头 这是第二个多行注释的结尾 */ 这是第一个多行注释的结尾 */
7.分号(默认不添加)
在一行中需要添加多个独立语句的时候必须要添加分号
var d = "dog"; println(d) let abc = 10; println((abc))
8.整数(8,16,32,64位 有符号和无符号整数)
Int8.min 与 INT8_MIN一样 Int8.max 与 INT8_MAX一样
8位有符号整数
let minInt8 = Int8.min//最小值 let maxInt8 = Int8.max//最大值 println((minInt8,maxInt8))
8位无符号整数
let minUInt8 = UInt8.min let maxUInt8 = UInt8.max println((minUInt8,maxUInt8))
16位有符号整数
let minInt16 = Int16.min//最小值 let maxInt16 = Int16.max//最大值 println((minInt16,maxInt16))
16位无符号整数
let minUInt16 = UInt16.min let maxUInt16 = UInt16.max println((minUInt16,maxUInt16))
32位有符号整数
let minInt32 = Int32.min//最小值 let maxInt32 = Int32.max//最大值 println((minInt32,maxInt32))
32位无符号整数
let minUInt32 = UInt32.min let maxUInt32 = UInt32.max println((minUInt32,maxUInt32))
64位有符号整数
let minInt64 = Int64.min//最小值 let maxInt64 = Int64.max//最大值 println((minInt64,maxInt64))
64位无符号整数
let minUInt64 = UInt64.min let maxUInt64 = UInt64.max println((minUInt64,maxUInt64))
9.Float(精确到小数点后5位)
var π : Float π = 3.1415926 println((π))
10.Double(精确到小数点后14位)
var π1 : Double π1 = 3.1415926535897932384626433832795028841971 println((π1))
11.类型安全
自动推断成string类型(以后赋值只能用string类型)
var str = "iphone"
自动推断成Int类型(以后赋值只能用Int类型)
var value = 42
12.类型推断(推断浮点型时总是推断成Double类型)
自动推断成Double类型
let pi = 3.1415926 let psdu = 5 + 1.45354
13.数值类型转换
let value1: UInt16 = 3200 let value2: UInt8 = 7
两种不同数值类型不能直接进行相加的操作,因为类型不匹配
错误:let value3 = value1 + value2
let value3 = value1 + UInt16(value2) println((value3))
14.类型别名
给现有类型起一个更有意义的名字
Int默认代表64位有符号整形
typealias audioSample = Int let maxValue = audioSample.max println((maxValue))
15.Bool类型
let haha = true let heihei = false if haha { println(haha) } if !heihei { println(heihei) }
16.元组数据的访问方式
let http404Error = (404,"Not Found") let (messageCode,message) = http404Error println("this is status code \(messageCode)") println("this is status message \(message)")
通过下标访问
println("this is status code \(http404Error.0)") println("this is status message \(http404Error.1)")
如果只需要一部分元组,分解的时候可以把要忽略的部分用_标记
let (justNeedStatusCode,_) = http404Error println("this is status code \(justNeedStatusCode)") let http200Status = (statusCode: 200,message: "ok") println("this is status \(http200Status.0)") println("this is status \(http200Status.message)")
17.可选类型
let possableNumber = "123a"
converNumber被推断为”Int?”或者是Optional Int
let converNumber = possableNumber.toInt() println((converNumber)) if let number = possableNumber.toInt() { println("\(possableNumber) has an integer value of \(number)") } else { println("\(possableNumber) could not convered integer") }
18.断言
let age = -3 assert(age >= 0,"A person's age could not be less than zero")