5
A
回答
8
是的!你可以在類型模式匹配,所以如果你有不同的情況進行不同的亞型,你可以得到你要尋找的行爲:
trait A
class B extends A
class C extends A
def f(a: A) = a match {
case b: B => "a B!"
case c: C => "a C!"
}
f(new B) // a B!
f(new C) // a C!
相關問題
- 1. Elixir案例陳述和模式匹配
- 2. 模式與奇偶案例匹配
- 3. 案例陳述和模式匹配
- 4. 沒有模式匹配
- 5. 案例分類有選項參數和案例匹配
- 6. 這種案例類匹配模式如何工作?
- 7. 模式匹配Scala中的案例類別列表
- 8. 如何模式匹配大型斯卡拉案例類?
- 9. Scala:與通用案例類匹配的模式
- 10. 案例類和隱參數和模式匹配
- 11. 斯卡拉習慣模式匹配與java.lang.String中和案例類
- 12. 正則表達式匹配模式A和沒有圖案B
- 13. 方案模式匹配
- 14. Scala - 使用模式匹配案例的更清潔方式
- 15. scala返回案例類別不匹配
- 16. scala中匹配多個案例類
- 17. 在Scala中匹配的案例類別
- 18. 沒有函數模板的實例匹配指定的類型
- 19. 匹配模式前面沒有字符
- 20. 匹配沒有以上的Lua模式
- 21. 用於案例模式匹配的枚舉元素索引
- 22. 如何獲得案例模式匹配循環的索引
- 23. Erlang風格 - 案例與功能模式匹配
- 24. 方案:模式匹配語法
- 25. 方案:模式匹配語法
- 26. 方案中的模式匹配
- 27. 方案:模式匹配語法
- 28. 方案:模式匹配語法
- 29. 爲什麼編譯錯誤在理解和模式匹配案例類
- 30. 在包含案例類別的列表中進行模式匹配
這看起來很好,謝謝!感謝你,我發現它被稱爲「類型匹配」,或類型 - 這裏有更多的信息(http://lampwww.epfl.ch/~emir/bqbase/2006/10/11/typecase.html) – goncalopp
另外,值得一提的是'A'可以是'Object'(或'Any') – goncalopp