話不多說,先放上swift 學習得**
今天學swift 到了遞迴列舉得**主要記錄一下學到得問題、**如下:
indirect enum arithmeticexpression
indirect 表示 列舉型別arithmeticexpression 得成員都是可遞迴得
let five = arithmeticexpression.number(5)
let four = arithmeticexpression.number(4)
let sum = arithmeticexpression.addition(five, four)
let product = arithmeticexpression.multiplication(sum, arithmeticexpression.number(2))
func evaluate(_ expression: arithmeticexpression) -> int
}print(evaluate(product))
// 列印 "18"
這個是**上得**。
一開始我照著手敲得時候 發現了乙個讓我很困惑得問題,left、right 這兩個小老弟 到底是什麼意思?
一首歌曲過後,我做了乙個嘗試就是把列舉型別得關聯值方法改變一下:
1.case multiplication(arithmeticexpression,arithmeticexpression,arithmeticexpression,arithmeticexpression) 新增了兩個型別。
相對應得也得改下面這段**:
2.let product = arithmeticexpression.multiplication(sum, arithmeticexpression.number(2), arithmeticexpression.number(2), arithmeticexpression.number(2))
最關建得evaluate 方法裡 我做了如下嘗試:
3. case let .multiplication(a, b,c,d):
return evaluate(a) * evaluate(b)*evaluate(c)*evaluate(d)
然後呼叫 print(evaluate(product)) 結果為 72.
我得困擾終於解決了,left 也好、right 也好 指得只是關聯值, 像我在上面定義得abcd 就是分別對應得multiplication(arithmeticexpression,arithmeticexpression,arithmeticexpression,arithmeticexpression)
就算你起 q、e、r、w 都可以。
不知道是我看教程不認真 還是如何。總算自己發現了問題。
寫了很久oc,現在學習swift 很不習慣。
剛才看了一下好像關聯值可以是 元組。再把元組得知識回顧一下。
剛學了2天、說的不對得地方 請大家指出 我會學習。
ps:剛才看了一下元組的知識、發現如果先看元組 就能明白我以上寫的困惑是怎麼回事了。
Swift基礎 列舉
列舉定義了乙個通用型別的一組相關的值,使我們可以在自己的 中以乙個安全的方式來使用這些值。列舉的結構 enum someenumeration 複製 列舉的使用 定義列舉 enum direction 呼叫列舉 var direct direction.east print 現在的方向是 direc...
Swift學習筆記 列舉
swift 中普通的列舉形式 enum direction 注意 在 swift 中,列舉的成員變數有著不同的值,他們不再是0,1,2,3 了 多個成員值也可以出現在同一行上,但是要用逗號隔開 enum direction 這一句過後,unknowdirection 就會被推斷是 direction...
swift學習記錄(列舉)
列舉定義了乙個通用型別的一組相關值,使我們可以在 中以一種安全的方式來使用這些值。基本語法 使用 enum 關鍵字定義列舉 enum 列舉名 enum compasspoint 成員值乙個列舉中定義的值,是列舉的成員值 成員 case 關鍵字表示乙個新的成員值將被定義。列舉的成員值不會被預設賦予乙個...