1、var用來聲明變量,let用來聲明常量
var str:String="Hello World"
let Contstr = "constr"
2、不能將賦值給變量本身類型之外的值賦值給他
str = 1024//拋異常
3、常量和變量不能相互轉換
4、swift將具體某種類型的值成為類型字面量
5、聲明一個變量只需要在變量名之后緊跟類型名,并且用冒號隔開
var sampleInteger:Int
var tmpInteger = 12//直接根據字面量來判斷類型
等價于
var tmpInteger = Int.init(12)//通過類型推斷機制識別出字面量所屬類型,然后調用對應類型初始化構造器對變量進行初始化
var tmpInteger = Int.init(12.88);//結果為12,顯示調用時構造器會做相應判斷
6、double和float類型的別名
typealias Float32 = Float
typealias Float64 = Double
7、布爾類型
訪問變量的布爾值
var sampleValue:Bool
var KeyValue = false
//通過description訪問變量的值
print(KeyValue.description)
//判斷
if !KeyValue {}
//while循環
var surplusDate = 3;
while surplusDate>=0 {}
8、字符串和字符
string:字符串
Character:字符
var sampleString:String
var note = "world"
sampleString = "Hello "+note//字符串拼接
打印時可以直接插入,而不用做轉換
var now = 6
print("你好嗎\(now)")
swift語言使用值傳遞作為默認字符串拷貝方式,無論何時,傳遞的都將是值得拷貝
9、計算字符串長度
let str="@鰻駝螺"
let len1=count(str) //swift 1.2 //=4
let len2=str.characters.count //swift 2.0 //=4
let blen=str.lengthOfBytesUsingEncoding(NSUTF8StringEncoding) //=10
10、swift中所有的類型都可以分為“值類型”或者“引用類型”
11、可選(optional)
標準聲明形式是在程序中使用類名緊跟“?”
var roundValue:Int?//等同于var roundValue:Optional<Int>(顯示調用)
print("the roundValue is \(roundValue)")
用于可選綁定(防止程序拋異常)
var optionalValue : Optional<Int>
if var MaxValue = optionalValue{//當Optional不為nil時賦值給MaxValue,并執行if語句,否則不執行
MaxValue += 1
print("The convert Value is\(MaxValue)")
}
在確定肯定有值的情況下,可以選用隱式解析
主要用在一個變量/常量在定義瞬間完成之后值一定會存在的情況。這主要用在類的初始化過程中。
var possibleString: String? = "An optional string."
//possibleString = nil
println(possibleString) // possibleString 為可選變量,需要使用!來訪問的值
運行結果為An optional string.
再來看一下把println這句改一下改為 (即在可選變量后面加上一個!號。)
println(possibleString!)//possibleString 為可選變量,需要使用!來訪問的值
還是輸出An optional string.
再次把possibleString = nil放開
//情況一:不帶!號時,輸出為nil .
var possibleString: String? = "An optional string."
possibleString = nil
println(possibleString)
//情況二:這時運行到這句println就會crash了。會報
fatal error: Can't unwrap Optional.None
var possibleString: String? = "An optional string."
possibleString = nil
println(possibleString)
總之一個變量或常量有可能是nil,就聲明為可選類型比較安全,因為非可選類型不能為nil
let assumedString: String? = nil //可以被賦值為nil
let implicitString: String = nil //不可以