2017-10-06 100 views
1

以下是我的代碼。我正在學習關閉。我收到一個錯誤,我的函數不會返回一個值。有人可以幫忙嗎?void函數中意外的非void返回值

func operationOnNumbers(_ a: Int, _ b: Int, operation: (Int, Int) -> Int) { 
    let result = operation(a, b) 
    print(result) 
    return result 
} 

let addClosure = {(a: Int, b: Int) in 
    a + b 
} 

operationOnNumbers(5, 7, operation: addClosure) 
+2

的錯誤信息是非常明確的。你正在返回「結果」,但你的函數簽名沒有返回類型。刪除「返回結果」行 –

+0

@AlainT。謝謝,是的,錯誤是非常明確的。明白了,謝謝你的幫助。我可以只添加返回類型 –

回答

0

使用如您在函數錯過返回類型此修改後的代碼( - >智力)

func operationOnNumbers(_ a: Int, _ b: Int, operation: (Int, Int) -> Int) -> Int{ 

    let result = operation(a, b) 
    print(result) 
    return result 
} 

let addClosure = {(a: Int, b: Int) in 
    a + b 
} 

operationOnNumbers(5, 7, operation: addClosure) 
+0

但是現在,您會收到有關忽略「operationOnNumbers」調用返回值的警告。 – rmaddy

+0

@Henrikaly Anibal,你可以使用變量來存儲返回值。 –

相關問題