Я хочу побачити значення, які знаходяться в фрагменті. Як я можу їх надрукувати?
projects []Project
Я хочу побачити значення, які знаходяться в фрагменті. Як я можу їх надрукувати?
projects []Project
Відповіді:
Ви можете спробувати %v
, %+v
або %#v
дієслова go fmt :
fmt.Printf("%v", projects)
Якщо ваш масив (або тут фрагмент ) містить struct
(як Project
), ви побачите їх дані.
Для більшої точності ви можете використовувати %#v
для друку об'єкта за допомогою синтаксису Go, як для буквального:
%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
Для основних типів fmt.Println(projects)
досить.
Примітка: для фрагмента покажчиків, тобто []*Project
(замість []Project
), вам краще визначити String()
метод, щоб відобразити саме те, що ви хочете бачити (або ви побачите лише адресу вказівника).
Дивіться цей приклад play.golang .
Для a []string
, ви можете використовувати strings.Join()
:
s := []string{"foo", "bar", "baz"}
fmt.Println(strings.Join(s, ", "))
// output: foo, bar, baz
Якщо ви просто хочете бачити значення масиву без дужок, ви можете використовувати комбінацію fmt.Sprint()
таstrings.Trim()
a := []string{"a", "b"}
fmt.Print(strings.Trim(fmt.Sprint(a), "[]"))
fmt.Print(a)
Повернення:
a b
[a b]
Майте на увазі, що за допомогою цього рішення будь-які провідні дужки будуть втрачені від першого значення, а будь-які останні дужки будуть втрачені від останнього значення
a := []string{"[a]", "[b]"}
fmt.Print(strings.Trim(fmt.Sprint(a), "[]")
fmt.Print(a)
Повернення:
a] [b
[[a] [b]]
Для отримання додаткової інформації дивіться документацію для strings.Trim ()
fmt.Printf()
це добре, але іноді мені подобається використовувати гарний пакет друку .
import "github.com/kr/pretty"
pretty.Print(...)
(Створили обліковий запис, щоб коментувати існуючу відповідь, але я не можу коментувати, поки у мене не вистачить запису)
Якщо ви хочете переглянути інформацію в фрагменті в тому ж форматі, який ви використовували для введення (такий як ["один", "два", "три"]), ось приклад коду, який показує, як це зробити :
Ви можете використовувати пакет 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)
}
Цей код буде виробляти та виводити так:
Більш детально читайте: https://github.com/inancgumus/prettyslice
fmt.Println(projects)
?