Giả sử bạn có những điều sau đây:Scala, tách lạng bộ và quá tải
foo(x: String)(y: Int): Int
foo(x: String)(y: Double): Int
Scala không cho phép biểu hiện như vậy. Theo như tôi có thể thấy, lý do cho điều này là foo ("asdf") không có một loại được xác định rõ ràng (đó là Int => Int hoặc Double => Int).
Có lý do nào khiến các chức năng "đa vai trò" đó không được phép?
https://issues.scala-lang.org/browse/SI-2628 – Bradford
Scala cho phép bạn xác định cặp phương thức quá tải đó, nhưng mọi cuộc gọi đều mơ hồ, vì những lý do được Martin nêu dưới đây. Có liên quan: http://stackoverflow.com/questions/2510108/why-avoid-method-overloading – retronym