【发布时间】:2021-09-28 09:57:21
【问题描述】:
我已经注明了它重复的地方。一个变量进入函数,并根据它的部分值,通过这个函数路由。然而,同样的事情需要用不同的变量重复,否则相同......很多次。
有没有更巧妙的方法来做到这一点?我无法用 for 循环弄清楚。
case _ where message.addressParts[0] == "GigPerformer" :
if message.addressParts[1] == "Main"{
if message.addressParts[2] == "Voice"{
if message.addressParts[3] == "CurrentSongName"{
gpMainVoice.gpSongNumber = "\(message.arguments.first ?? error)"
gpMainVoice.gpSongName = "\(message.arguments.last ?? error)"
}
if message.addressParts[3] == "CurrentSongPartName"{
gpMainVoice.gpCurrentSongPartNumber = "\(message.arguments.first ?? error)"
gpMainVoice.gpCurrentSongPartName = "\(message.arguments.last ?? error)"
}
if message.addressParts[3] == "SongPartName"{
for i in gpMainVoice.gpSongPartNumber.indices {
if "\(message.arguments.first ?? error)" == String(i) {
gpMainVoice.gpSongPartNumber[i] = "\(message.arguments.first ?? error)"
gpMainVoice.gpSongPartName[i] = "\(message.arguments.last ?? error)"
break
}
}
}
}
//这里是重复的地方
if message.addressParts[2] == "Amp"{
if message.addressParts[3] == "CurrentSongName"{
gpMainAmp.gpSongNumber = "\(message.arguments.first ?? error)"
gpMainAmp.gpSongName = "\(message.arguments.last ?? error)"
}
if message.addressParts[3] == "CurrentSongPartName"{
gpMainAmp.gpCurrentSongPartNumber = "\(message.arguments.first ?? error)"
gpMainAmp.gpCurrentSongPartName = "\(message.arguments.last ?? error)"
}
if message.addressParts[3] == "SongPartName"{
for i in gpMainAmp.gpSongPartNumber.indices {
if "\(message.arguments.first ?? error)" == String(i) {
gpMainAmp.gpSongPartNumber[i] = "\(message.arguments.first ?? error)"
gpMainAmp.gpSongPartName[i] = "\(message.arguments.last ?? error)"
break
}
}
}
}
}
【问题讨论】:
标签: swift for-loop switch-statement