슬라이스에있는 값을보고 싶습니다. 어떻게 인쇄 할 수 있습니까?
projects []Project
슬라이스에있는 값을보고 싶습니다. 어떻게 인쇄 할 수 있습니까?
projects []Project
답변:
go fmt 의 %v
, %+v
또는 %#v
동사를 사용해 볼 수 있습니다 .
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 예제를 참조하십시오 .
의 경우 []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 () 설명서를 참조하십시오.
(기존 답변에 댓글을 달 수있는 계정을 만들었지 만 충분한 담당자가있을 때까지 댓글을 달 수 없습니다.)
입력 할 때 사용하는 것과 동일한 형식 ([ "one", "two", "three"]과 같은)으로 Slice의 정보를 보려면 여기에 방법을 보여주는 코드 예제가 있습니다. :
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)
}
이 코드는 다음과 같이 생성되고 출력됩니다.
fmt.Println(projects)
?