第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

將數(shù)組傳遞給Swift中具有可變數(shù)量的args的函數(shù)

將數(shù)組傳遞給Swift中具有可變數(shù)量的args的函數(shù)

一只名叫tom的貓 2019-08-12 17:58:58
將數(shù)組傳遞給Swift中具有可變數(shù)量的args的函數(shù)在Swift編程語言中,它說:函數(shù)也可以采用可變數(shù)量的參數(shù),將它們收集到一個(gè)數(shù)組中。  func sumOf(numbers: Int...) -> Int {       ...   }當(dāng)我用逗號(hào)分隔的數(shù)字列表(`sumOf(1,2,3,4))調(diào)用這樣的函數(shù)時(shí),它們可以作為函數(shù)內(nèi)的數(shù)組使用。問:如果我已經(jīng)有一個(gè)數(shù)字?jǐn)?shù)組要傳遞給這個(gè)函數(shù)怎么辦?let numbers = [1, 2, 3, 4]sumOf(numbers)這會(huì)因編譯器錯(cuò)誤而失敗,“無法找到接受所提供參數(shù)的'__conversion'的重載”。有沒有辦法將現(xiàn)有數(shù)組轉(zhuǎn)換為可以傳遞給可變函數(shù)的元素列表?
查看完整描述

3 回答

?
郎朗坤

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊

正如開發(fā)人員所證實(shí)的,Splatting還沒有語言。現(xiàn)在的解決方法是使用重載或等待,如果您不能添加重載。


查看完整回答
反對(duì) 回復(fù) 2019-08-12
?
猛跑小豬

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊

這是我發(fā)現(xiàn)的一項(xiàng)工作。我知道這不是你想要的,但似乎有效。

第1步:使用數(shù)組而不是可變參數(shù)聲明您想要的函數(shù):

func sumOf(numbers: [Int]) -> Int {
    var total = 0
    for i in numbers {
        total += i    }
    return total}

第2步:從可變參數(shù)函數(shù)中調(diào)用它:

func sumOf(numbers: Int...) -> Int {
    return sumOf(numbers)}

第3步:呼叫任何一種方式:

var variadicSum = sumOf(1, 2, 3, 4, 5)
var arraySum = sumOf([1, 2, 3, 4, 5])

這看起來很奇怪,但它在我的測(cè)試中起作用。如果這會(huì)導(dǎo)致任何人無法預(yù)料的問題,請(qǐng)告訴我。Swift似乎能夠用相同的函數(shù)名來區(qū)分兩個(gè)調(diào)用之間的差異。

此外,使用此方法,如果Apple更新語言@ manojid的答案建議,您只需要更新這些功能。否則,您將不得不經(jīng)歷并進(jìn)行大量重命名。


查看完整回答
反對(duì) 回復(fù) 2019-08-12
?
米琪卡哇伊

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊

你可以施放這個(gè)功能:

typealias Function = [Int] -> Intlet sumOfArray = unsafeBitCast(sumOf, Function.self)sumOfArray([1, 2, 3])


查看完整回答
反對(duì) 回復(fù) 2019-08-12
  • 3 回答
  • 0 關(guān)注
  • 1011 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)