函數(shù)的類型
函數(shù)具有類型的,如:
func count(kids: Dictionary<String, String>) -> (girls:Int, boys:Int)
該函數(shù)的類型是 (Dictionary<String,String>)->(Int, Int)
函數(shù)是引用類型,即賦值操作時不是把值的副本賦值,而是讓常量或變量指向它(這個函數(shù))
定義函數(shù)常量,如:
let f1:(Dictionary<String,String>)->(Int,Int) = count
var (g, b) = f1(k)
print("girls=\(g) boys=\(b)")
定義函數(shù)變量,如:
var f1:(Dictionary<String,String>)->(Int,Int) = count
var (g, b) = f1(k)
print("girls=\(g) boys=\(b)")
無論是函數(shù)變量還是函數(shù)常量,都可以用來調(diào)用所表示函數(shù)
高級玩法(一):函數(shù)的參數(shù)類型為函數(shù)類型
如:
func countFacade(countFunc:(Dictionary<String,String>)->(Int, Int), kids:Dictionary<String,String>) ->(Int, Int) {
return countFunc(kids)
}
var k:Dictionary<String, String> = ["AAA":"Girl", "BBB":"Boy", "CCC":"Girl", "DDD":"Girl", "EEE":"Boy"]
var (g,b) = countFacade(count, kids: k)
print("girls:\(g) boys:\(b)")
用途:1)避免使用和閱讀代碼的人關注到復雜功能的細節(jié)
2)當函數(shù)的具體實現(xiàn)需要變化時,可以在函數(shù)類型不變的情況下方便修改該
3)對于集合元素做統(tǒng)一的操作,而由函數(shù)類型的參數(shù)決定是何操作
如對集合中的元素做排序時,可以通過參數(shù)傳遞函數(shù)指明比較的函數(shù)
高級玩法(二):函數(shù)的返回值類型為函數(shù)類型
如:
func drawMoney(cardNumber:String)->Bool {
//取錢的代碼
return true;
}
func saveMoney(cardNumber:String)->Bool {
//存錢的代碼
return true;
}
func chooseBakingBusiness(bankBusiness:String) -> (String)->Bool
{
var bbFunc:(String)->Bool = drawMoney;
if bankBusiness == "存錢" {
bbFunc = saveMoney;
}
else if bankBusiness == "取錢" {
bbFunc = drawMoney;
}
return bbFunc;
}
let bbf = chooseBakingBusiness("存錢")
bbf("123456")
嵌套函數(shù)
嵌套函數(shù):
是指在一個函數(shù)的內(nèi)部,聲明另一個函數(shù)
這樣做意味著:只能在外部函數(shù)的作用域中調(diào)用內(nèi)部函數(shù)
如:(在chooseBankingBusiness函數(shù)外不能通過函數(shù)名調(diào)用存取款函數(shù))
func chooseBakingBusiness(bankBusiness:String) -> (String)->Bool {
func drawMoney(cardNumber:String)->Bool {
//取錢的代碼
return true;
}
func saveMoney(cardNumber:String)->Bool {
//存錢的代碼
return true;
}
var bbFunc:(String)->Bool = drawMoney;
if bankBusiness == "存錢" {
bbFunc = saveMoney;
}
else if bankBusiness == "取錢" {
bbFunc = drawMoney;
}
return bbFunc;
}
let bbf = chooseBakingBusiness("存錢")
bbf("123456")
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網(wǎng)站題目:Swift2.0(9)函數(shù)的使用(二)-創(chuàng)新互聯(lián)
鏈接地址:http://aaarwkj.com/article32/dohdsc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供電子商務、自適應網(wǎng)站、品牌網(wǎng)站制作、定制開發(fā)、網(wǎng)站營銷、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)