在一些swift開源庫里經常能看到 where 關鍵字的使用,但是查詢開發文件的時候又找不到這個關鍵字。為了方便使用,這邊總結了一些where關鍵字的用法。
1、用在do catch裡面
enum
exceptionerror:error
func throwerror() throws
//do
catch
docatch exceptionerror.httpcode(let httpcode) where httpcode >= 500
2、用在switch裡面
//switch
varvalue:(int,string) = (1,"小明")
switch
value
3、for in
//
forin
let arrayone = [1,2,3,4,5]
let dictionary = [1:"hehe1",2:"hehe2"]
for i in arrayone where dictionary[i] != nil
4、與范型結合
//第一種寫法
func genericfunction(str:s) where s:expressiblebystringliteral
//第二種寫法
func genericfunction(str:s)
5、與協議結合
//protocol
protocol aprotocol{}
extension aprotocol where
self:uiview
}class myview:uiview{}
extension myview:aprotocol{}
let myview = myview()
let astr = myview.getstring()
注意:以下是swift3.0取消的 where 寫法
本來在while迴圈中也能使用的where,現在變成了這個樣子\
1、while
//while swift2.0中的寫法
var arraytwo:[int]? =
while
let arr = arraytwo where arr.count < 5
的寫法var arraytwo:[int]? =
while
let arr = arraytwo , arr.count < 5
2、if 和 guard
// swift2.0中的寫法``
let sstring =
""if
let str = sstring where str ==
""let
string:string?=
"小剛"
guard let str =
string
where str !=
"小明"
else
print("確實是小明")
合理的利用where關鍵字會令**有更高的可讀性、更高的簡便性、更時尚。 new關鍵字 this關鍵字 base關鍵字
使用new,所做的三件事 1.類是引用物件,引用物件是在堆中開闢空間 在堆中開闢空間 2.在開闢的堆空間中建立物件 3.呼叫物件的構建函式 4.隱藏父類成員 子類的成員可以與隱藏從父類繼承的成員,類似於重寫。public new void sayhello this關鍵字的使用 1.代表當前類的物件...
java中關鍵字final static使用總結
一.final final類不能被繼承,沒有子類,final類中的方法預設是final的。final方法不能被子類的方法覆蓋,但可以被繼承。final成員變數表示常量,只能被賦值一次,賦值後值不再改變。final不能用於修飾構造方法。父類的private成員方法是不能被子類方法覆蓋的,因此priva...
this關鍵字 static關鍵字
1.當成員變數和區域性變數重名,可以用關鍵字this來區分 this 代表物件,代表那個物件呢?當前物件 this就是所在函式所屬物件的引用 簡單說 那個物件呼叫了this所在的函式,this就代表哪個物件 this也可以用於在建構函式中呼叫其他建構函式 注意 只能定義在建構函式的第一行,因為初始化...