2013-07-17 34 views
5

Tôi có điều này ít scala dụ:scala không cảnh báo về tính toán không sử dụng hoặc giá trị

object Test { 
    def add(x: Int, y: Int) = { 
    val z = x - y 
    x match { 
     case 0 => 0 - y 
     case 1 => 1 - y 
     case _ => x - y 
    } 
    x + y 
    } 

    def main(args: Array[String]) { 
    println(add(5, 6)) 
    } 
} 

tôi cảm thấy scala cần cảnh báo về 'z' và 'x trận đấu ...' là không sử dụng. Tôi đã không nhận thấy bất kỳ tùy chọn trình biên dịch nào để bật thêm cảnh báo. Tôi đang sử dụng scala 2.10.1.

Suy nghĩ? Cảm ơn!

+3

Đây là mã scala hoàn toàn hợp lệ như được trình biên dịch chỉ ra. Cảnh báo biến không được sử dụng thường là thứ mà trình phân tích mã nguồn sẽ tìm và cảnh báo. Đối với một đoạn mã tương tự, trình biên dịch 'java' cũng không hiển thị cảnh báo. – Brian

+0

@Brian Tôi không chắc chắn javac là điểm chuẩn. 3 nhân viên nói, tôi không cần sự an toàn của loại stinkin! Tôi đã cắt giảm một số điểm yếu trong trận đấu, nhưng nó vẫn cố gắng giảm bớt sự mệt mỏi. Nó có thể cảnh báo về việc loại bỏ các giá trị cho Đơn vị, cho thấy nó sẽ cảnh báo nếu nó có thể cảnh báo. –

+0

Thử thêm tùy chọn trình biên dịch '" -Ywarn-value-discard "'. –

Trả lời

8

Như bạn có thể thấy here, cảnh báo "không sử dụng" sẽ được giới thiệu trong phiên bản tiếp theo của scala, 2.11.

Cảnh báo về các điều khoản sử dụng tin/local và các loại, và nhập khẩu không sử dụng, dưới -Xlint

Bạn có thể thử chúng bằng cách sử dụng cột mốc cuối cùng.

+0

Trong 2.11: '-Ywarn-unused Cảnh báo khi các vals, vars, defs và các loại địa phương và tư nhân không được sử dụng.' – nedim

Các vấn đề liên quan