带Swift的元组

带Swift的元组,swift,tuples,Swift,Tuples,嘿,我花了两个多小时想弄明白这一点,但我就是搞不好。我猜我犯了一个非常简单的错误,所以如果有人能给我指出正确的方向,我会非常感激,谢谢!顺便说一句,这是一个树屋课程 “目前,我们的问候语函数只返回一个值。修改它以元组形式返回问候语和语言。请确保将元组中的每个项目命名为:问候语和语言。我们将在下一个任务中打印它们。” 我收到的错误消息是 swift_lint.swift:13:12: error: '(String, String)' is not convertible to 'String'

嘿,我花了两个多小时想弄明白这一点,但我就是搞不好。我猜我犯了一个非常简单的错误,所以如果有人能给我指出正确的方向,我会非常感激,谢谢!顺便说一句,这是一个树屋课程

“目前,我们的问候语函数只返回一个值。修改它以元组形式返回问候语和语言。请确保将元组中的每个项目命名为:问候语和语言。我们将在下一个任务中打印它们。”

我收到的错误消息是

swift_lint.swift:13:12: error: '(String, String)' is not convertible to 'String' return found ^ swift_lint.swift:13:12:错误:“(字符串,字符串)”不能转换为“字符串” 返回发现 ^ 现在,在课程工作中,他们转换了字符串和布尔值,这样做是可行的,但他们没有解释当两个类型相同时该怎么做。我以为是要把它转换成(String,String),但我得到了那个错误


谢谢你的帮助

我认为您将用于元组的标签放在了错误的位置—参数所在的位置。据我所知,你的函数不应该有任何参数

func greeting() -> (language: String, greeting: String) {

    let language = "English"
    let greeting = "Hello"

    return (language, greeting)
}
这将返回一个命名元组

let greet = greeting()
println(greet.language)
println(greet.greeting)

我同意你试图设置你的输入变量。这可能会更有趣一点。此函数用于查找一种语言的问候语(目前只定义了一种语言的问候语):

如果使用以下命令调用此命令:

var greetingFound = greeting("English")
println("In \(greetingFound.0) the greeting is \(greetingFound.1)") // Demonstrate tuple access
它打印这个:

英语中的问候语是Hello

编辑:

哎呀,;我的错误是,函数实际上应该是:

func greeting (language: String) -> (String, String) {

    var greetingDictionary = [String: String]() // Create an empty dictionary
    greetingDictionary["English"] = "Hello"     // Add an object "Hello" for key "English"

    let greeting:String = greetingDictionary[language]! // set greeting to the greeting for the language passed in

    var found = (language, greeting) // Return a tuple

    return found
}

你的代码对我来说很好。。。我只是把它复制粘贴到一个操场上,它成功了。这个代码对我来说非常适合。你确定你是从错误的地方复制的吗?
var greetingFound = greeting("English")
println("In \(greetingFound.0) the greeting is \(greetingFound.1)") // Demonstrate tuple access
func greeting (language: String) -> (String, String) {

    var greetingDictionary = [String: String]() // Create an empty dictionary
    greetingDictionary["English"] = "Hello"     // Add an object "Hello" for key "English"

    let greeting:String = greetingDictionary[language]! // set greeting to the greeting for the language passed in

    var found = (language, greeting) // Return a tuple

    return found
}