我一直在搜索,但是我发现的大多数答案都比我目前所能理解的要复杂。如果那里有一个教程,我希望获得一个链接,但这是我的问题:
我有多个具有相同机制和形式的函数,但是调用了不同的类。现在,我重复很多相同的代码,并且我想有一种更短的方法来执行此操作。这是一个示例:
func nextQuestion() {
switch analysisProgress {
case 7:
if questionProgress < ownershipQuestionList.list.count {
questionLabel.fadeTransition(0.4)
questionLabel.text = ownershipQuestionList.list[questionProgress].question
definitionText.text = ownershipQuestionList.list[questionProgress].definitions
} else {
self.performSegue(withIdentifier: "goToNarrativeVC", sender: nil)
}
case 9:
if questionProgress < discomfortQuestionList.list.count {
questionLabel.fadeTransition(0.4)
questionLabel.text = discomfortQuestionList.list[questionProgress].question
definitionText.text = discomfortQuestionList.list[questionProgress].definitions
} else {
self.performSegue(withIdentifier: "goToNarrativeVC", sender: nil)
}
case 10:
if questionProgress < resourceQuestionList.list.count {
questionLabel.fadeTransition(0.4)
questionLabel.text = resourceQuestionList.list[questionProgress].question
definitionText.text = resourceQuestionList.list[questionProgress].definitions
} else {
self.performSegue(withIdentifier: "goToNarrativeVC", sender: nil)
}
default:
()
}
处理这些情况的最佳方法是什么?
答案 0 :(得分:1)
这似乎与泛型没有任何关系。似乎仅仅是重构以强制执行DRY(不要重复自己)。
如果想法是django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
和ownershipQuestionList
和discomfortQuestionList
都需要具有某些共同的特定属性,则使它们具有相同的类,或者是它们的子类。相同的类,或者采用通用协议。
如果他们已经这样做了,那么只需将通用代码移到本地函数中,然后每次都调用它即可。