Tôi muốn xem các giá trị trong phần này. Làm thế nào tôi có thể in chúng?
projects []Project
Tôi muốn xem các giá trị trong phần này. Làm thế nào tôi có thể in chúng?
projects []Project
Câu trả lời:
Bạn có thể thử %v
, %+v
hoặc %#v
động từ của fmt đi :
fmt.Printf("%v", projects)
Nếu mảng của bạn (hoặc lát cắt ở đây ) chứa struct
(giống như Project
), bạn sẽ thấy chi tiết của chúng.
Để chính xác hơn, bạn có thể sử dụng %#v
để in đối tượng bằng cú pháp Go, như đối với một chữ:
%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
Đối với các loại cơ bản, fmt.Println(projects)
là đủ.
Lưu ý: đối với một phần của con trỏ, nghĩa là []*Project
(thay vì []Project
), bạn nên xác định một String()
phương thức để hiển thị chính xác những gì bạn muốn xem (hoặc bạn sẽ chỉ thấy địa chỉ con trỏ).
Xem ví dụ play.golang này .
Đối với một []string
, bạn có thể sử dụng strings.Join()
:
s := []string{"foo", "bar", "baz"}
fmt.Println(strings.Join(s, ", "))
// output: foo, bar, baz
Tôi thích fmt.Printf("%+q", arr)
cái nào sẽ in hơn
["some" "values" "list"]
Nếu bạn chỉ muốn xem các giá trị của một mảng không có dấu ngoặc, bạn có thể sử dụng kết hợp fmt.Sprint()
vàstrings.Trim()
a := []string{"a", "b"}
fmt.Print(strings.Trim(fmt.Sprint(a), "[]"))
fmt.Print(a)
Lợi nhuận:
a b
[a b]
Hãy lưu ý rằng với giải pháp này, bất kỳ dấu ngoặc đứng đầu nào sẽ bị mất khỏi giá trị đầu tiên và bất kỳ dấu ngoặc kép nào sẽ bị mất khỏi giá trị cuối cùng
a := []string{"[a]", "[b]"}
fmt.Print(strings.Trim(fmt.Sprint(a), "[]")
fmt.Print(a)
Lợi nhuận:
a] [b
[[a] [b]]
Để biết thêm thông tin, hãy xem tài liệu về chuỗi.Trim ()
fmt.Printf()
cũng được, nhưng đôi khi tôi thích sử dụng gói in đẹp .
import "github.com/kr/pretty"
pretty.Print(...)
(Đã tạo tài khoản để bình luận về câu trả lời hiện có, nhưng tôi không thể bình luận cho đến khi có đủ đại diện)
Nếu bạn muốn xem thông tin trong Slice ở cùng định dạng mà bạn sử dụng để nhập nó vào (một số như ["một", "hai", "ba"]), đây là một ví dụ mã cho thấy cách thực hiện điều đó :
Bạn có thể sử dụng gói 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)
}
Mã này sẽ được sản xuất và xuất ra như thế này:
Để biết thêm chi tiết, vui lòng đọc: https://github.com/inancgumus/prettyslice
fmt.Println(projects)
?