Tôi mới đến Scala ... Dưới đây là các mã:Trình biên dịch Scala cho biết mã không thể truy cập, tại sao?
def ack2(m: BigInt, n: BigInt): BigInt = {
val z = BigInt(0)
(m,n) match {
case (z,_) => n+1
case (_,z) => ack2(m-1,1) // Compiler says unreachable code on the paren of ack2(
case _ => ack2(m-1, ack2(m, n-1)) // Compiler says unreachable code on the paren of ack2(
}
}
Tôi đang cố gắng để hiểu rằng ... tại sao là nó đưa ra lỗi đó?
Lưu ý: Tôi đang sử dụng Scala Eclipse Plugin 2.8.0.r21376-b20100408034031 ch.epfl.lamp.sdt.feature.group
Vâng, bạn đã trả lời câu hỏi của mình ... Tôi cũng nên hỏi cách khắc phục tốt nhất, :) Tôi có thể đổi thành trường hợp _ nếu m == 0 => n + 1; case _ if n == 0 => ack2 (m-1,1) là cách duy nhất để làm điều đó? Tôi không thể đặt 0 trực tiếp trong parens sau vụ án vì nó phàn nàn về nó không phải là BigInt. Tôi không thể đặt BigInt (0) vào parens vì nó phàn nàn về nó không phải là constructor class case – mentics
@taotree: Tôi nghĩ tôi đã trả lời cách sửa nó trong bản chỉnh sửa của mình. – sepp2k