swift some關鍵字

//事例1:

//some的用法

//彩蛋協(xié)議

protocol SurpriseEgg{

? ? associatedtype ContentType

? ? var content:ContentType{get}

}

//定義一個彩蛋類,

struct egg:SurpriseEgg{

? ? var content:String

}

//抽獎

//返回遵守SurpriseEgg的類,但是只能返回一種類型,下面注釋的返回是不對的.編譯時確定類型

/*

?if(條件){

? ? return 類型1;

?}else{

? ? return 類型2;

?}

?*/

//其實這里直接返回egg類型就行了,此處只是為了說明some

func pickEgg() -> some SurpriseEgg{

? ? var arr = [egg]();

? ? let n = 6;

? ? for i in 1...n{

? ? ? ? let e = egg(content:"\(i)號蛋");

? ? ? ? arr.append(e);

? ? }

? ? return arr[Int(arc4random())%n]

}

//let oneEgg =? pickEgg();

//print(oneEgg.content);

//事例2

//轉自:http://www.cocoachina.com/cms/wap.php?action=article&id=27048

func makeInt() ->some Equatable{

? ? return arc4random()%5;

}

print(makeInt());

//這是不行的 返回類型不統(tǒng)一

//func makeInt() -> some Equatable{

//? ? if(Bool.random()){

//? ? ? ? return 5

//? ? }else{

//? ? ? ? return "string"

//? ? }

//}

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容