原文地址:http://blog.csdn.net/hello_hwc/article/details/39782829
一、常量和變量
這裏首先說的是,swfit可以使用分號結尾,也可以不使用,但是,一行要執行多個語句,一定要分號
變量聲明用var
常量聲明用let
常量和變量的名字可以是Unicode字符,但是不能包含數學符號,箭頭,保留的字符(例如:while)
- let constVar = 10
- var tempVar = 11.0
- let 黃文臣 = "程序員"
- constVar++ //Wrong constVar是常量
- tempVar++
- println(tempVar)//輸出Var並且換行
swift是類型安全的語言,編譯器會根據變量或者常量初始化的時候去給它分配一個類型
例如:
- let radius = 1 + 0.06//swift會推斷出radius是浮點數Double類型
- var tempVar:String = "1234" 表示tempvar是一個String類型的變量
一般無需這樣聲明,因爲swift突出一個精簡,編譯器能做的事情,程序員就不要畫蛇添足了
備註:println的輸出複雜信息
- println("The current output is \(tempVar)")
二、註釋
和C++,OC類似,具有以下注釋方式
//註釋一行
/*
...
*/註釋一段
另外,
swfit支持註釋嵌套
/*
...
/*...*/
*/
三、數據類型
整數
Int:長度和平臺的原聲字長相同,即32位的時候,int就和Int32相同,64位機子的時候,就和Int64相同
UInt 和Int類似,只不過無符號//不推薦使用,最好統一使用int,方便類型轉換
另外還有
Int8,Int16,Int32,Int64等類型,只不過長度不同
Int.max 返回Int的最大值
Int.min 返回Int的最小值
二進制數:0b
八進制數:0o
十六進制:0x
exp表示10^exp
例如
- let binaryInteger = 0b1111
- let octalInteger = 0o21
- let hexadecmalInteger = 0x21
- let expFloat = 1.25e-2// 1.15* 10^-2 = 0.0125
浮點數
Double:64位//精度很大的浮點數
Float:32位 //一般精度的浮點數
在swift中,
整數和浮點數的轉換必須顯式指定
- let four = 4
- let varDouble = 0.1111
- let tempDouble = Double(four) + varDouble//則,tempDouble爲Double類型
布爾值
兩個布爾值:true false 分別表示真假
元組(tuples)
- 多個值表示的一個序列,熟悉Python的同學對這個應該不陌生
- let tupleExample = ("Hwc","程序員")
- let (name,jop) = tupleExample
- println("The jop of \(name) is \(jop)")
- 可以獲得一部分元素,忽略的部分用下劃線表示
- let (name,_) = tupleExample
- 也可以使用下標訪問
- let name = tupleExample.0
- let jop = tupleExample.1
- 元組對於一個函數有多個返回值來說非常有用
可選類型
- let var1 = "12"
- let intVar1 = var1.toInt()
這裏的intVar1就是一個可選類型Int?,問號表示要麼intVar存在,他就是一個Int類型,要麼intVar1不包含值
用if 可以判斷這變量or常量是否含有值,如果含有可以用感嘆號!來獲取這個值,就是告訴編譯器器,我知道這個值存在,你直接把他轉換成Int類型,不要是Int?類型
- if intVar1!= nil{
- let result = intVar1!
- }
對一個變量賦值nil,則表示它沒有值
nil不能用於非可選類型的變量和常量
例如
- var temp:Int?
- temp = nil//right
- var temp:Int
- temp = nil //Wrong
可選綁定
使用可選綁定來判斷類型是否包含值,如果包含就把這個值賦給臨時常量或變量
常用在if或者while的判斷裏
例如
如果可以轉換爲整數,則if條件滿足,否則不滿足
let intVar = var1.toInt()
if let tempVar = intVar{//Do something else }
隱式解析可選類型
- var temp1:Int? = 10
- var intAlwaysExist:Int! = temp1
- println(intAlwaysExist)//Do not need to use intAlwaysExist! ro check if intAlwaysExist != nil
對於一個可以確定以後一直存在的一個值,用隱式解析可選類型是十分有效的。
三、typealias
相當於typedef,類型別名
使用方法:typealias dataType = Int
let data1:dataType = 5//聲明一個Int類型的data