我正在尝试使用 Swift 中的枚举器函数计算音符的半音变化了多少,但我不知道如何应用它。这是我所做的:
enum TonalityChange: String{
case C = "1/2"
case Csharp = "1"
case D = "1(1/2)"
case Dsharp = "2"
case E = "2(1/2)"
case F = "3"
case Fsharp = "3(1/2)"
case G = "4"
case Gsharp = "4(1/2)"
case A = "5"
case Asharp = "5(1/2)"
case B = "6"
}
然后我为枚举声明一个 var:
var OldTonality : B
var NewTonality : C
var Difference : //This will do the subtraction result
然后我必须减去这两个值以获得一个自然数,让我知道变化,例如:
6 - (1/2) = 5(1/2)
最后,我想制作一条警告消息,如下所示:
"Great! Tonality changed by \(Difference) tones!"
or "Great! Tonality changed by (1/2) tones!"
但我整天都在思考如何做这个逻辑。
最佳答案
将 TonalityChange 设为 float 而不是字符串:
enum TonalityChange: Float {
case C = 0.5
case Csharp = 1
case D = 1.5
case Dsharp = 2
case E = 2.5
case F = 3
case Fsharp = 3.5
case G = 4
case Gsharp = 4.5
case A = 5
case Asharp = 5.5
case B = 6
}
现在您可以进行比较了。
let diff = TonalityChange.B.rawValue - TonalityChange.C.rawValue
关于swift - 枚举函数并在 swift 上用新值减去旧值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52195200/