歡迎**。
一、元組
元組是多個值組合而成的復合值。元組中的值可以是任意型別,而且每乙個元素的型別可以是不同的。
1. 直接給元組填充內容
let http404error = (404, "not found")
2. 給元組內容設定名稱
let http200status = (statuscode: 200, description: "ok")
3. 訪問元組
let desc2 = http200status.description元組使用舉例:
1. 交換兩個變數的值
傳統的交換兩個變數值的方式是定義臨時變數來實現
func exchange(inout num1: int,inout num2: int)
var a = 10
var b = 20
exchange(&a, &b)
有了元組後,我們可以這樣寫(帥呆了~~~):
func swapme(inout a: t, inout b: t)
2. 同時返回結果與錯誤資訊
在objective-c中,經常有請求網路資料的需求,所以我們會自定義乙個block用來返回資料和異常。有了元組之後就方便多了。如下面的例子:
func dosomethingmightcauseerror() -> (bool, nserror?) else
}let (success, maybeerror) = dosomethingmightcauseerror()
if let error = maybeerror else
可以看出,呼叫的時候,直接將結果返回為元組,處理起來就非常方便了。
二、typealias
其實typealias就相當於objective-c中的typedef,就是將型別重新命名,看起來更加語義化。
例如,計算兩點之間的距離。普通寫法:
func distancebetweenpoint(point: cgpoint, topoint: cgpoint) -> double
let origin: cgpoint = cgpoint(x: 0, y: 0)
let point: cgpoint = cgpoint(x: 1, y: 1)
let distance: double = distancebetweenpoint(origin, point)
**中變數型別都是cgpoint和double,不能清晰的表達業務需求。所以,我們可以通過typealias進行改造。
typealias location = cgpoint
typealias distance = double
func distancebetweenpoint2(location: location, tolocation: location) -> distance
let origin2: location = location(x: 0, y: 0)
let point2: location = location(x: 1, y: 1)
let distance2: distance = distancebetweenpoint2(origin, point)
此時,看上去,location就是座標點,distance就是距離。
三、泛型
泛型就是在定義方法、類等的時候不指定具體的型別,只是用乙個字元或者字串進行佔位工作,等到真正呼叫方法或者類等的時候,傳遞進來具體的型別。泛型能夠很好地實現**的重構,減少重複**。
1. 交換兩個變數的值:
在上面的例子中,交換的兩個變數的型別是確定的,都是int,但如果此時要交換的是string型別,感覺**又必須重寫乙份了,而且重寫的部分就是將**中的int替換為string。所以,此時我們可以考慮使用泛型了。先看看寫法。
func swapvalue(inout first: t, inout second: t)
var number1: int = 20
var number2: int = 30
swapvalue(&number1, &number2)
在定義函式swapvalue的時候,傳遞了泛型t,此時並不知道t具體是什麼型別,在呼叫的時候,指定具體型別即可。這樣,不管是交換什麼型別變數的值就都可以了。
2. 查詢陣列中某個值的索引
func findindex(array: [t], valuetofind: t) -> int?
}return nil
}let array = [3,6,13,7,4,90,34]
let index = findindex(array, 13)
泛型資料比較,必須實現equatable協議。
3. 模擬棧
struct stack
mutating func pop() -> t
}var stackofstring = stack()
stackofstring.push("jack")
stackofstring.push("rose")
stackofstring.push("ruby")
let fromtop = stackofstring.pop()
Swift 兩 Swift訪問元組
在swift在,獲取元組的值到乙個位置,通過三種方法 這樣statuscode常量就表示404。而statusmessage常量就表示 not found 能夠使用下劃線 對不須要的值進行忽略。如上,能夠使用http404error.0表示404,使用http404error.1表示 not fou...
swift語言 元組
1 元組的概念 元組是一種復合資料型別。使用圓括號包含一組資料,可以將不同型別的資料組合在一起。可以使用隱氏型別推斷,也可以有型別標註。例子如下 import foundation var teacher miss yang 26,1.59 隱氏型別推斷 var teacher1 string,ag...
Swift語法 元組
一 元組 定義 元組 tuples 把多個值組合成乙個復合值。元組內的值可以是任意型別,並不要求是相同型別。1 定義 乙個型別為 int,string 的元組 http404error 的型別是 int,string 值是 404,not found 2 訪問 全部元組元素 部分元組元素 元組下標訪...