arrays - 如何用几行代码改进这个程序?
问题描述
我正在尝试创建一个不和谐的机器人来检查消息是否包含存储在数组中的字符串。我尝试使用 for 循环,但它没有工作,因为它永远持续下去,我想减少代码行,有什么办法吗?
switch {
case strings.Contains(mContent, characterss[0]):
currentCharacter = characterss[0]
currentDescription = descriptions[0]
currentImage = images[0]
isCorrect = true
case strings.Contains(mContent, characterss[1]):
currentCharacter = characterss[1]
currentDescription = descriptions[1]
currentImage = images[1]
isCorrect = true
case strings.Contains(mContent, characterss[2]):
currentCharacter = characterss[2]
currentDescription = descriptions[2]
currentImage = images[2]
isCorrect = true
case strings.Contains(mContent, characterss[3]):
currentCharacter = characterss[3]
currentDescription = descriptions[3]
currentImage = images[3]
isCorrect = true
case strings.Contains(mContent, characterss[4]):
currentCharacter = characterss[4]
currentDescription = descriptions[4]
currentImage = images[4]
isCorrect = true
case strings.Contains(mContent, characterss[5]):
currentCharacter = characterss[5]
currentDescription = descriptions[5]
currentImage = images[5]
isCorrect = true
case strings.Contains(mContent, characterss[6]):
currentCharacter = characterss[6]
currentDescription = descriptions[6]
currentImage = images[6]
isCorrect = true
}
解决方案
只需使用一个循环:
for i := 0; i <= 6; i ++ {
if strings.Contains(mContent, characeterss[i]) {
currentCharacter = characterss[i]
currentDescription = descriptions[i]
currentImage = images[i]
isCorrect = true
break
}
}
推荐阅读
- c# - 从 C# 中的文本文件中读取矩阵
- android - Titanium Appcelerator Android:WebView Html5本地音频/视频不播放
- ios - 如何在 SWIFT 项目中使用 iosMath?响应。如何将 MTMathUILabel() 添加到项目中?
- dart - 如何从目录中获取文件列表并将其传递给 ListView?
- c# - 在多线程模式下将多个应用程序固定到任务栏导致挂起
- java - Spring Boot + TestNG + MockMVC 为 @Autowired 提供 Null
- javascript - 如何在母版页中调用 jqueryui 自动完成以获取内容页中定义的控件
- opencv - 如何通过在频域中指定感兴趣区域来加速 DFT
- java - 启用另一个 JBUtton 时禁用一个 JButton
- php - 如何使用 `created_at` 列获取最新数据