如何通过Swift中的函数传递字典键以返回数组值
我的任务是编写一个基本的“同义词库”应用程序,只有几个条目,但我不知道如何编写代码,以便在通过我的函数传递的键具有nil值时返回结果 最终,想法是将文本字段输入连接到文本视图输出,以便用户可以输入任何单词以尝试获得响应。但是我甚至不能在没有连接到用户界面的情况下拨入我的代码如何通过Swift中的函数传递字典键以返回数组值,swift,dictionary,optional,Swift,Dictionary,Optional,我的任务是编写一个基本的“同义词库”应用程序,只有几个条目,但我不知道如何编写代码,以便在通过我的函数传递的键具有nil值时返回结果 最终,想法是将文本字段输入连接到文本视图输出,以便用户可以输入任何单词以尝试获得响应。但是我甚至不能在没有连接到用户界面的情况下拨入我的代码 let synonyms = ["swift" : ["abrupt", "expeditious", "hasty", "nimble", "quick", "rapid", "speedy", "sudden", "un
let synonyms = ["swift" : ["abrupt", "expeditious", "hasty", "nimble", "quick", "rapid", "speedy", "sudden", "unexpected"]]
func buttonPressed(key:String)-> Array<Any> {
return synonyms[key]!
}
buttonPressed(key: "swift")
let同义词=[“swift”:[“突然”、“迅速”、“匆忙”、“敏捷”、“快速”、“快速”、“快速”、“突然”、“意外”]]
按下func按钮(键:字符串)->数组{
返回同义词[键]!
}
按下按钮(键:“swift”)
我无法在没有强制展开的情况下运行此函数,但我最终希望此函数能够为nil输入返回一个字符串,该字符串表示“对不起,这个单词不在同义词库中。”
如果我用“if let”打开包装,我想不出我的“else”应该是什么;如果我的键在字典中有一个值,我不知道如何返回一个数组,但是在nil的情况下返回一个字符串
有什么建议吗?谢谢 字典总是返回可选项,因为该键可能不存在。把你的字典想象成[String:[String]?] 可以使用nil合并操作符像这样展开它
func按钮按下(键:字符串)->Array{
返回同义词[key]?[“对不起,这个词不在同义词库中。”]
}
由于键可能不存在,字典总是返回可选的。把你的字典想象成[String:[String]?]
可以使用nil合并操作符像这样展开它
func按钮按下(键:字符串)->Array{
返回同义词[key]?[“对不起,这个词不在同义词库中。”]
}
首先是逻辑。因为您的字典是[String:[String]]
所以您需要将字符串的数组作为字符串键的值返回
所以你有这个想法:你有一个带有输入的文本字段,按钮和文本视图。首先,按下按钮时需要注册。因此,为事件创建操作。touchUpInside
@IBAction func buttonPressed(_ sender: UIButton) {
}
因此,您可以通过获取文本字段的text
属性来获取文本字段的文本。您可以对文本视图执行相同的操作
textField.text
textView.text
所以现在当按下按钮时,从文本字段获取输入,若文本字段的文本键存在,则将文本视图的文本更改为该键的值
@IBAction func buttonPressed(_ sender: UIButton) {
if let synonyms = synonyms[textField.text!] {
let text = array.joined(separator: ", ")
textView.text = text
}
}
你注意到这句话了吗
let text = array.joined(separator: ", ")
。。。您不能将textView
的文本设置为数组,因为数组的类型为[String]
,而text
属性为单个字符串。所以,这将把数组“连接”到单个字符串中,数组中的每个元素之间都有分隔符 首先是逻辑。因为您的字典是[String:[String]]
所以您需要将字符串的数组作为字符串键的值返回
所以你有这个想法:你有一个带有输入的文本字段,按钮和文本视图。首先,按下按钮时需要注册。因此,为事件创建操作。touchUpInside
@IBAction func buttonPressed(_ sender: UIButton) {
}
因此,您可以通过获取文本字段的text
属性来获取文本字段的文本。您可以对文本视图执行相同的操作
textField.text
textView.text
所以现在当按下按钮时,从文本字段获取输入,若文本字段的文本键存在,则将文本视图的文本更改为该键的值
@IBAction func buttonPressed(_ sender: UIButton) {
if let synonyms = synonyms[textField.text!] {
let text = array.joined(separator: ", ")
textView.text = text
}
}
你注意到这句话了吗
let text = array.joined(separator: ", ")
。。。您不能将textView
的文本设置为数组,因为数组的类型为[String]
,而text
属性为单个字符串。所以,这将把数组“连接”到单个字符串中,数组中的每个元素之间都有分隔符 我希望这对你有帮助。
要返回数组,请执行以下操作:
let同义词=[“swift”:[“突然”、“迅速”、“匆忙”、“敏捷”、“快速”、“快速”、“快速”、“突然”、“意外”]]
func搜索(键:字符串)->[字符串]{
//默认值也应该是带有一个字符串元素的数组
返回同义词[key]?[“对不起,这个词不在同义词库中。”]
}
//这是将调用search(key:)方法的按钮操作
@iAction按钮按下(u发送方:ui按钮){
让results=search(key:textField.text???)//从UITextField获取文本
}
我希望这对您有所帮助。
要返回数组,请执行以下操作:
let同义词=[“swift”:[“突然”、“迅速”、“匆忙”、“敏捷”、“快速”、“快速”、“快速”、“突然”、“意外”]]
func搜索(键:字符串)->[字符串]{
//默认值也应该是带有一个字符串元素的数组
返回同义词[key]?[“对不起,这个词不在同义词库中。”]
}
//这是将调用search(key:)方法的按钮操作
@iAction按钮按下(u发送方:ui按钮){
让results=search(key:textField.text???)//从UITextField获取文本
}
不相关,但您将返回Array
而不是Array
不相关,但您将返回Array
而不是Array