我有一个写的函数
func synonyms(for:) --> [String : [String?]]
我想使其返回一个可选数组(字符串)。我有一个字典变量([String : [String]]
),看起来像一个单词(键)和数组(值,该单词的4-6个不同同义词之间的任意值)。
为了实现这一目标,我想为了返回传入单词的同义词,我实际上需要告诉计算机从我的userinput
(TextField,ViewController,并且我正在使用UI Delegate)中找到匹配的键。 )。为此,我使用了for-in循环。这里的问题是,当编译器说“ for”实际上是我的同义词函数的参数/参数时,它说“ for”是“ for循环”。
我应该在同义词函数的内部写什么?
为了在此函数中返回传入单词的同义词,我需要告诉计算机从我的userinput(TextField,ViewController,并且我正在使用UI Delegate)中找到匹配的键。我尝试使用for-in循环。问题在于,编译器说“ for”实际上是我的同义词函数的参数/参数时,是“ for循环”。
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。
答案 0 :(得分:2)
我认为您需要这样的东西:
// 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: ", ")
}