2014-06-15 68 views
1

所以我一直在嘗試學習一些Swift,並一直在尋找具有返回類型的函數。我添加了這個函數,它應該可以工作,但我仍然收到錯誤「無法找到成員'convertFromStringInterpolationSegment。'我看了其他堆棧溢出的問題,並試圖運用自己的答案,但無濟於事。一些幫助,將不勝感激。函數不能在Swift中工作

func getGasPrices2(price1: Double, price2:Double, price3:Double) 
{ 
    return "The prices are \(String(price1)), \(String(price2)), \(String(price3))." 
} 
getGasPrices2(3.59, 3.69, 3.79) 
+0

btw,在字符串插值中,您不需要將參數轉換爲字符串。你可以,在這種情況下只使用「價格是\(price1)...」 –

+0

@大衛:很好的捕獲。 –

回答

3

你忘了聲明返回類型。既然你想返回字符串,函數需要聲明:

func getGasPrices2(price1: Double, price2:Double, price3:Double) -> (String) 

我敢肯定,蘋果將在這些美妙的錯誤信息工作:)

0

阿爾文說,你只是錯過了返回類型

。​​

...在函數的聲明中。

我發現自己做同樣的事情,在最後遺忘的返回類型,因爲我還是習慣寫作斯威夫特雖然具有Objective-C的習慣的功能類型聲明,第一

...

基本上你在斯威夫特功能...

func getGasPrices2(price1: Double, price2:Double, price3:Double) -> (String) 

...相當於*到

-(NSString*)getGasPrices2: (double)price1 price2:(double)price2 price3:(double)price3 

... in Objective-C *

* Swift中的字符串與NSStrings不完全相同,但是這兩個函數都能夠完成您期望的操作;一個在Objective-C中,另一個在Swift中(只要確保實際返回字符串/ NSString在末尾:-)