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