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")