@fnr przepraszam, ale recenzenci prawdopodobnie uznali, że pytanie zostało łatwo rozwiązane przez doc. Zaktualizowałem swoją odpowiedź, aby pokazać, że nie zawsze jest to takie oczywiste. Możesz zostawić swoje pytanie, jest ważne.
VonC,
2
@fnr - -1 na tej stronie oznacza pytanie: „nie wskazuje na wysiłek badawczy; jest niejasny lub nieprzydatny”. Widzę więc, że oznaczyłeś swoje pytanie jako „idź” i „tablice” i chcesz wiedzieć, „jak je wydrukować”. Jeśli wejdę na Google.com i wyszukam hasło „przejdź do tablic z samouczkami w języku programowania”, znajdę wiele zasobów, w tym ten, który może pomóc. Więc jeśli to pomoże, oznacza to, że nie zbadałeś go zbytnio przed wysłaniem. Jeśli to nie pomoże, musisz wywołać przeszukiwane witryny i wyjaśnić, dlaczego nie były pomocne.
Jeśli twoja tablica (lub tutaj wycinek ) zawiera struct(jak Project), zobaczysz ich szczegóły.
Aby uzyskać większą precyzję, możesz użyć %#vdo wydrukowania obiektu przy użyciu składni Go, tak jak w przypadku literału:
%v the valuein 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 .
¯ \ _ (ツ) _ / ¯ Jeśli znajdziesz krótkie rozwiązanie, dodaj je jako odpowiedź na to pytanie. Założę się, że tego właśnie szuka większość ludzi.
Pylinux,
4
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.
(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ć :
Witamy w Stack Overflow! Jeśli twoja odpowiedź wnosi coś nowego do tematu, należy ona do sekcji odpowiedzi. Nie ma potrzeby, aby to usprawiedliwiać, mówiąc, że masz zbyt małą liczbę powtórzeń; Twój post jest dokładnie tam, gdzie powinien :) Biorąc to pod uwagę, ogólnie preferowane jest umieszczanie kodu, którego używasz, bezpośrednio w odpowiedzi, a nie jako łącze do innej witryny. Możesz zostawić link w, ale skopiuj również kod do swojej odpowiedzi. Dzięki!
fmt.Println(projects)
?Odpowiedzi:
Można spróbować
%v
,%+v
czy%#v
czasowniki odchodzenia FMT :Jeśli twoja tablica (lub tutaj wycinek ) zawiera
struct
(jakProject
), 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: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 .
źródło
Przez
[]string
można użyćstrings.Join()
:źródło
Wolę,
fmt.Printf("%+q", arr)
który będzie drukowanyhttps://play.golang.org/p/XHfkENNQAKb
źródło
Jeśli chcesz zobaczyć tylko wartości tablicy bez nawiasów, możesz użyć kombinacji
fmt.Sprint()
istrings.Trim()
Zwroty:
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
Zwroty:
Aby uzyskać więcej informacji, zapoznaj się z dokumentacją dotyczącą ciągów.
źródło
fmt.Printf()
jest w porządku, ale czasami lubię używać ładnego pakietu do drukowania .źródło
(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ć :
https://play.golang.org/p/vOF6xZ__Otr
źródło
Możesz użyć pakietu Pretty Slice:
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
źródło