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