Chcę zobaczyć wartości, które są w wycinku. Jak mogę je wydrukować?
projects []Project
Chcę zobaczyć wartości, które są w wycinku. Jak mogę je wydrukować?
projects []Project
Odpowiedzi:
Można spróbować %v
, %+v
czy %#v
czasowniki odchodzenia FMT :
fmt.Printf("%v", projects)
Jeśli twoja tablica (lub tutaj wycinek ) zawiera struct
(jak Project
), zobaczysz ich szczegóły.
Aby uzyskać większą precyzję, możesz użyć %#v
do wydrukowania obiektu przy użyciu składni Go, tak jak w przypadku literału:
%v the value in a default format.
when printing structs, the plus flag (%+v) adds field names
%#v a Go-syntax representation of the value
W przypadku podstawowych typów fmt.Println(projects)
wystarczy.
Uwaga: w przypadku wycinka wskaźników []*Project
(zamiast []Project
) lepiej jest zdefiniować String()
metodę, aby wyświetlić dokładnie to, co chcesz zobaczyć (lub zobaczysz tylko adres wskaźnika).
Zobacz ten przykład play.golang .
Przez []string
można użyć strings.Join()
:
s := []string{"foo", "bar", "baz"}
fmt.Println(strings.Join(s, ", "))
// output: foo, bar, baz
Jeśli chcesz zobaczyć tylko wartości tablicy bez nawiasów, możesz użyć kombinacji fmt.Sprint()
istrings.Trim()
a := []string{"a", "b"}
fmt.Print(strings.Trim(fmt.Sprint(a), "[]"))
fmt.Print(a)
Zwroty:
a b
[a b]
Należy jednak pamiętać, że w przypadku tego rozwiązania wszelkie początkowe nawiasy zostaną utracone z pierwszej wartości, a wszelkie nawiasy końcowe zostaną utracone z ostatniej wartości
a := []string{"[a]", "[b]"}
fmt.Print(strings.Trim(fmt.Sprint(a), "[]")
fmt.Print(a)
Zwroty:
a] [b
[[a] [b]]
Aby uzyskać więcej informacji, zapoznaj się z dokumentacją dotyczącą ciągów.
fmt.Printf()
jest w porządku, ale czasami lubię używać ładnego pakietu do drukowania .
import "github.com/kr/pretty"
pretty.Print(...)
(Utworzono konto, aby skomentować istniejącą odpowiedź, ale nie mogę komentować, dopóki nie mam wystarczającej liczby przedstawicieli)
Jeśli chcesz wyświetlić informacje w wycinku w tym samym formacie, którego używałbyś do wpisania (niektóre jak [„jeden”, „dwa”, „trzy”]), oto przykładowy kod pokazujący, jak to zrobić :
Możesz użyć pakietu Pretty Slice:
package main
import pretty "github.com/inancgumus/prettyslice"
func main() {
nums := []int{1, 9, 5, 6, 4, 8}
odds := nums[:3]
evens := nums[3:]
nums[1], nums[3] = 9, 6
pretty.Show("nums", nums)
pretty.Show("odds : nums[:3]", odds)
pretty.Show("evens: nums[3:]", evens)
}
Ten kod będzie tworzył i wyświetlał w następujący sposób:
Aby uzyskać więcej informacji, przeczytaj: https://github.com/inancgumus/prettyslice
fmt.Println(projects)
?