2016-03-29 11 views
8

biegnę idź do weterynarza na moim narzędziu CI, i zaczęła się błąd:wyłączyć sprawdzanie vet przejdź do "kompozytowych dosłowne wykorzystuje unkeyed pola"

composite literal uses unkeyed fields 

bo jestem instancji

type A struct { 
    *B 
} 

tak:

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

ja nie dbam o to ostrzeżenie, a chcesz ją wyłączyć na My go kontroli weterynarza. Jak mam to zrobic?

+2

myślę, że jest to problem występujący w "iść do weterynarza". Nie ma dwuznaczności w tym przypadku (tylko jeden członek) i "go weterynarz" ​​nie powinien zgłaszać tego jako problemu. To samo dotyczy wielu członków, którzy mają niekompatybilne typy. – dolmen

Odpowiedz

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

Można wyłączyć go lub można naprawić kod zamiast:

a := A{B: b} 

playground

+0

Nie sądzę, że to działa? – genxstylez

+0

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

+0

Działa idealnie, dzięki –

Powiązane problemy