Có, nó sử dụng từ khóa if
. Từ phần Case Classes của A Tour của Scala, gần cuối:
def isIdentityFun(term: Term): Boolean = term match {
case Fun(x, Var(y)) if x == y => true
case _ => false
}
(này không được đề cập trên trang Pattern Matching, có lẽ vì Tour là một cái nhìn tổng quan nhanh chóng như vậy.)
Trong Haskell, otherwise
thực sự chỉ là một biến được liên kết với True
. Vì vậy, nó không thêm bất kỳ sức mạnh nào vào khái niệm khớp mẫu. Bạn có thể lấy nó chỉ bằng cách lặp lại mẫu ban đầu của bạn mà không cần bảo vệ:
// if this is your guarded match
case Fun(x, Var(y)) if x == y => true
// and this is your 'otherwise' match
case Fun(x, Var(y)) if true => false
// you could just write this:
case Fun(x, Var(y)) => false
Nguồn
2010-02-15 16:00:39
Điều gì sẽ là 'n' trong trường hợp này và vui lòng cung cấp ví dụ làm việc ở trên. – Jet
@Jet 'n' sẽ là đối số cho hàm. [Ở đây] (http://ideone.com/HhSuF0) là một ví dụ về cách sử dụng hàm. – sepp2k
OK, cảm ơn :-) – Jet