1

所以我一直在尝试学习一些 Swift 并且一直在研究具有返回类型的函数。我添加了这个函数,它应该可以工作,但我仍然收到错误“找不到成员'convertFromStringInterpolationSegment。' 我查看了其他堆栈溢出问题并尝试应用他们的答案,但无济于事。非常感谢一些帮助。

    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)
4

2 回答 2

3

您忘记声明返回类型。由于您要返回一个字符串,因此该函数需要声明:

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

我确信 Apple 会处理这些精彩的错误消息。:)

于 2014-06-15T01:26:36.657 回答
0

正如阿尔文所说,您只是缺少返回类型

-> (String)

...在函数的声明中。

我发现自己在做同样的事情,最后忘记了返回类型,因为我仍然习惯于用 Swift 编写,同时拥有 Objective-C 的函数类型声明优先的习惯

...

基本上你在 Swift 中的功能......

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

...等价于*

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

...在 Objective-C* 中

*Swift 中的字符串与 NSString 并不完全相同,但两个函数都可以完成您想要做的事情;一个在 Objective-C 中,另一个在 Swift 中(只要你确保在最后返回一个 String/NSString :-)

于 2014-06-15T20:46:45.147 回答