Swift Compiler Error: Cannot convert value of type '()' to specified type 'String'

Swift Compiler Error: Cannot convert value of type '()' to specified type 'String'

我正在使用 Swift 游乐场,并在 Swift.

简介的第 9 课中学习参数
func sing(verb: String, noun: String) {
    print("\(verb), \(verb), \(verb) your \(noun)")
}

let line = sing(verb: "Row", noun: "Boat")

最后一行给了我这个警告:

Constant 'line' inferred to have type '()', which may be unexpected.

当我将常量显式定义为字符串时—let line: String = sing(verb: "Row", noun: "Boat")—我收到以下错误:

error: cannot convert value of type '()' to specified type 'String'

我不知道该怎么做才能解决这个问题。

旁注:如果您对如何使函数读起来更像一个句子有任何建议,我将不胜感激!

您的函数 sing() 不是 returning 一个 String 对象。

因此您不能使用 variable = void function(),因为它不是有效的赋值操作。

您可以将 String 指定为 sing() 的 return 类型,并且 return 您正在函数中打印的字符串。那将解决您的问题。

func sing(verb: String, noun: String) -> String {   
  return "\(verb), \(verb), \(verb) your \(noun)"     
}

let line = sing(verb: "Row", noun: "Boat")