Scala có tương đương với cond của chương trình không?chương trình cond bằng ngôn ngữ scala
Trả lời
Tôi đoán bạn đang tìm kiếm match
(hoặc chỉ đơn giản là if/else if/else
).
case class Paired(x: Int, y: Int)
def foo(x: Any) = x match {
case string : String => println("Got a string")
case num : Int if num < 100 => println("Number less than 100")
case Paired(x,y) => println("Got x and y: " + x + ", " + y)
case unknown => println("??: " + unknown)
}
Hai câu lệnh đầu tiên phù hợp với kiểu mẫu. Thứ ba cho thấy việc sử dụng một Extractor để chia nhỏ dữ liệu thành các phần cấu thành và gán các phần đó cho các biến. Phần thứ ba hiển thị một mẫu khớp biến đổi sẽ khớp với bất kỳ thứ gì. Không được hiển thị là _ case:
case _ => println("what")
Giống như biến mẫu khớp, khớp với bất kỳ thứ gì, nhưng không ràng buộc đối tượng phù hợp với biến.
Lớp chữ thường ở trên cùng là viết tắt của Scala để tạo trình trích xuất cũng như chính lớp đó.
Tất nhiên, không phải match
cũng không if
thực hiện chính xác điều tương tự như cond
. Một khả năng là làm như thế này:
object Cond {
def apply(clauses: Iterable[(()=>Boolean,()=>Any)]): Any = {
clauses find (_._1()) map (_._2()) getOrElse()
}
}
Đối tượng này chấp nhận nơi mà mỗi mục là một cặp hàm trả về Boolean và hàm trả về Bất kỳ. Nó cố gắng tìm một mục có hàm đầu tiên trả về true, dừng tìm kiếm nếu nó tìm thấy một hàm, gọi hàm thứ hai trên một mục tìm thấy và trả về kết quả của hàm đó (hoặc() nếu không tìm thấy).
Ví dụ:
val clauses = Seq(
({()=>false}, {()=>println("foo")}),
({()=>true}, {()=>println("bar")})
)
Cond(clauses)
def checkYear(year: Int) = {
Cond(Seq(
({()=>year % 400 == 0}, {()=>42}),
({()=>true}, {()=>{c:Char => (c.toString * 3)}})
))
}
ETA: Vâng, tôi biết nó là xấu xí, nhưng nó hoạt động.
- 1. Ý nghĩa của chương trình sang ngôn ngữ và chương trình của bạn bằng ngôn ngữ của bạn
- 2. Ngôn ngữ lập trình PHP hoặc ngôn ngữ lập trình?
- 3. Mục đích của ngôn ngữ lập trình Scala là gì?
- 4. Ý nghĩa của _2 ký bằng ngôn ngữ scala
- 5. bộ xe hơi! và để trong ngôn ngữ chương trình
- 6. Ngôn ngữ lập trình Go được viết bằng ngôn ngữ nào?
- 7. Có thể thực hiện một ngôn ngữ lập trình thứ hai bằng ngôn ngữ đó không?
- 8. Console.log bằng ngôn ngữ Dart
- 9. Ngôn ngữ lập trình đã nhập
- 10. Tương đương với bảng tính Scala IDE bằng các ngôn ngữ khác?
- 11. C# Ngôn ngữ lập trình
- 12. Ngôn ngữ lập trình Siri
- 13. Dấu thời gian bằng ngôn ngữ lập trình C
- 14. Cách tạo ngôn ngữ lập trình bằng Python
- 15. Kiểm tra ngôn ngữ của trình duyệt bằng PHP?
- 16. Ngôn ngữ lập trình nào là FogBugz được viết bằng?
- 17. Có chương trình Tạo kiểu GNU cho ngôn ngữ lập trình D không?
- 18. Đa ngôn ngữ Ngôn ngữ
- 19. Bạn có định sử dụng ngôn ngữ lập trình Scala và dự án nào không?
- 20. Windows: Ngôn ngữ lập trình nào?
- 21. Dịch mã byte Java sang các ngôn ngữ lập trình và ngôn ngữ lập trình khác
- 22. Ngày hiển thị trên iPhone bằng ngôn ngữ người dùng nhưng bằng ngôn ngữ khác
- 23. Ngôn ngữ được sử dụng để viết chương trình cho truyền hình vệ tinh?
- 24. Ngôn ngữ trình duyệt trong Playframework
- 25. UML cho ngôn ngữ lập trình C
- 26. Mảng trong ngôn ngữ lập trình J
- 27. Cách tạo ngôn ngữ lập trình .Net?
- 28. Mẫu quan sát bằng ngôn ngữ Go
- 29. ngôn ngữ lập trình không xác định
- 30. jQuery ngôn ngữ trình duyệt phát hiện