該代碼非常不言自明。我試圖讓字典變數成為 3 個結構之一。目前可能有一個簡單的解決方案讓我無法理解。
func whichDictionaryToUse(flaps: Int, wind: Int) {
var dictionary = ()
var possibleWindDictionaries = Set<[Double:Double]>()
switch flaps {
case 10: dictionary = CorrectLD10Dict()
case 15: dictionary = CorrectLD15Dict()
case 35: dictionary = CorrectLD35Dict()
default: print("Present alert saying flaps value out of range")
}
switch wind {
case 10: possibleWindDictionaries = [dictionary.plusTenMinusTwoDic, dictionary.plusTenMinusOneDic, dictionary.plusTenZeroDic, dictionary.plusTenPlusOneDic, dictionary.plusTenPlusTwoDic]
…
uj5u.com熱心網友回復:
使用結構的實作如下:
struct CorrectLD10Dict: CorrectLDict {
var plusTenMinusTwoDic = [Double : Double]()
var plusTenMinusOneDic = [Double : Double]()
var plusTenZeroDic = [Double : Double]()
var plusTenPlusOneDic = [Double : Double]()
var plusTenPlusTwoDic = [Double : Double]()
}
struct CorrectLD15Dict: CorrectLDict {
var plusTenMinusTwoDic = [Double : Double]()
var plusTenMinusOneDic = [Double : Double]()
var plusTenZeroDic = [Double : Double]()
var plusTenPlusOneDic = [Double : Double]()
var plusTenPlusTwoDic = [Double : Double]()
}
struct CorrectLD35Dict: CorrectLDict {
var plusTenMinusTwoDic = [Double : Double]()
var plusTenMinusOneDic = [Double : Double]()
var plusTenZeroDic = [Double : Double]()
var plusTenPlusOneDic = [Double : Double]()
var plusTenPlusTwoDic = [Double : Double]()
}
protocol CorrectLDict {
var plusTenMinusTwoDic: [Double:Double] { get set }
var plusTenMinusOneDic: [Double:Double] { get set }
var plusTenZeroDic : [Double:Double] { get set }
var plusTenPlusOneDic : [Double:Double] { get set }
var plusTenPlusTwoDic : [Double:Double] { get set }
}
func whichDictionaryToUse(flaps: Int, wind: Int) {
var dictionary: CorrectLDict? = nil
var possibleWindDictionaries = Set<[Double:Double]>()
switch flaps {
case 10: dictionary = CorrectLD10Dict()
case 15: dictionary = CorrectLD15Dict()
case 35: dictionary = CorrectLD35Dict()
default: print("Present alert saying flaps value out of range")
}
guard let dictionary = dictionary else { return }
switch wind {
case 10: possibleWindDictionaries = [dictionary.plusTenMinusTwoDic, dictionary.plusTenMinusOneDic, dictionary.plusTenZeroDic, dictionary.plusTenPlusOneDic, dictionary.plusTenPlusTwoDic]
default:
print("")
}
}
使用類的實作如下:
class CorrectLDict {
var plusTenMinusTwoDic = [Double : Double]()
var plusTenMinusOneDic = [Double : Double]()
var plusTenZeroDic = [Double : Double]()
var plusTenPlusOneDic = [Double : Double]()
var plusTenPlusTwoDic = [Double : Double]()
}
class CorrectLD10Dict: CorrectLDict {}
class CorrectLD15Dict: CorrectLDict {}
class CorrectLD35Dict: CorrectLDict {}
func whichDictionaryToUse(flaps: Int, wind: Int) {
var dictionary: CorrectLDict? = nil
var possibleWindDictionaries = Set<[Double:Double]>()
switch flaps {
case 10: dictionary = CorrectLD10Dict()
case 15: dictionary = CorrectLD15Dict()
case 35: dictionary = CorrectLD35Dict()
default: print("Present alert saying flaps value out of range")
}
guard let dictionary = dictionary else { return }
switch wind {
case 10: possibleWindDictionaries = [dictionary.plusTenMinusTwoDic, dictionary.plusTenMinusOneDic, dictionary.plusTenZeroDic, dictionary.plusTenPlusOneDic, dictionary.plusTenPlusTwoDic]
default:
print("")
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/416307.html
標籤:
上一篇:SwiftUI如何動態地使視圖的前導等于其與超級視圖的頂部距離
下一篇:如何使用組合框架獲取展開值
