2016-03-29 14 views
8

Tôi đang chạy đi bác sĩ thú y trên công cụ CI của tôi, và bắt đầu nhận được lỗi:Disable kiểm tra đi bác sĩ thú y cho "đen hợp sử dụng các trường unkeyed"

composite literal uses unkeyed fields 

Bởi vì tôi instantiating

type A struct { 
    *B 
} 

như thế này:

A{b} // b is of type *B 

Tôi không quan tâm đến cảnh báo này và muốn vô hiệu hóa tính năng này trong quá trình kiểm tra vé của tôi. Làm thế nào để tôi làm điều này?

+2

Tôi nghĩ rằng đây là một lỗi trong "đi bác sĩ thú y". Không có sự mơ hồ trong trường hợp này (chỉ một thành viên) và "go vet" không nên báo cáo vấn đề này. Tương tự với nhiều thành viên có loại không tương thích. – dolmen

Trả lời

10
$ go doc cmd/vet 

By default all checks are performed. If any flags are explicitly set to true, only those tests are run. Conversely, if any flag is explicitly set to false, only those tests are disabled. Thus -printf=true runs the printf check, -printf=false runs all checks except the printf check.

Unkeyed composite literals 

Flag: -composites 

Composite struct literals that do not use the field-keyed syntax. 
20

Bạn có thể vô hiệu hóa nó hoặc bạn có thể sửa chữa các mã thay vì:

a := A{B: b} 

playground

+0

Tôi không nghĩ rằng điều này hoạt động? – genxstylez

+0

@genxstylez http://play.golang.org/p/mW03O0Rl5I – OneOfOne

+0

Hoạt động hoàn hảo, cảm ơn –

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