如何编写一个函数,其中 returns 来自字典变量的可选字符串数组?

How to write a function which returns an optional array of strings from a dictionary variable?

我有一个函数是这样写的 func synonyms(for:) --> [String : [String?]]
我想让它 return 是一个可选数组(字符串)。我有一个字典变量 ([String : [String]]),它看起来像一个单词(键)和数组(值,该单词的 4-6 个不同同义词之间的任何位置)。 在尝试实现这一点时,我认为为了 return 传入单词的同义词,我实际上需要告诉计算机从我的 userinput(TextField,ViewController,我正在使用 UI 委托)。为此,我使用了一个 for-in 循环。这里的问题是编译器说 "for" 是一个 "for loop" 而实际上它是我的 argument/parameter 我的同义词函数.. 我在同义词函数里面写什么?

为了return这个函数中传入的单词的同义词,我需要告诉计算机从我的用户输入中找到匹配的键(TextField,ViewController,我正在使用UI代表)。我尝试使用 for-in 循环。问题是编译器说 "for" 是一个 "for loop" 而实际上它是我的 argument/parameter 我的同义词函数。

    func synonyms(for: String) -> [String: [String?]] {
        let synonynmsAre = "your synonyms \(for) are)"
        return synonynmsAre
    }

    print(synonyms(for: "swift"))
    synonyms(for: "swift")

你的同义词是Optional(["abrupt", "expeditious", "hasty", "nimble", "quick", "rapid", "speedy", "sudden", "unexpected"]) 但是,那里没有括号和 Optional。我希望它也显示在我的 iOS 应用程序的 TextView 中。我正在使用最新版本的 XCode 和最新版本的 Swift。

我想你需要这样的东西:

// Basically where you store the synonyms
let synonymsDictionary = [
    "swift": ["foo", "bar", "baz"],
    "objective-c": ["NSFoo", "NSBar", "NSBaz"]
]

// Just return an optional array here
func synonyms(for word: String) -> [String]? {
    return synonymsDictionary[word]
}


// how to use

if let possibleSynonyms = synonyms(for: "swift") {
    print(possibleSynonyms.joined(separator: ", ")) // prints foo, bar, baz
    // or
    someLabel.text = possibleSynonyms.joined(separator: ", ")
}