Go 콘솔에서 구조체 변수를 인쇄하는 방법

  1. Go에서struct 선언
  2. fmt 패키지의Printf 기능
  3. encoding/json 패키지의Marshal 기능

Go에서struct는 동일하거나 다른 데이터 유형의 서로 다른 필드를 모은 것입니다. struct는 객체 지향 프로그래밍 패러다임의 클래스와 유사합니다. fmt 패키지의Printf 함수와Printf 함수의 인수로 특수 태그를 사용하여 구조체를 인쇄 할 수 있습니다. 마찬가지로encoding/json,go-spewPretty Printer Library와 같은 특수 패키지를 사용하여 구조체를 인쇄 할 수도 있습니다.

Go에서struct 선언

Go의 구조체는struct 키워드를 사용하여 생성됩니다.

package main

import "fmt"

type info struct {
    Name    string
    Address string
    Pincode int
}

func main() {
    a1 := info{"Dikhsya Lhyaho", "Jhapa", 123}
    fmt.Println("Info of Dikhsya: ", a1)
}

산출:

Info of Dikhsya:  {Dikhsya Lhyaho Jhapa 123}

Go에서 다양한 패키지로struct 변수를 인쇄 할 수 있습니다. 그들 중 일부는 아래에 설명되어 있습니다.

fmt 패키지의Printf 기능

특별한 포맷팅 옵션과 함께 패키지 fmtPrintf 기능을 사용할 수 있습니다. fmt를 사용하여 변수를 표시하는 데 사용할 수있는 형식화 옵션은 다음과 같습니다.

체재 기술
%v 변수 값을 기본 형식으로 인쇄
%+v 값으로 필드 이름 추가
%#v 값의 Go 구문 표현
%T 값의 유형에 대한 Go 구문 표현
%% 문자 퍼센트 부호; 가치가 없다

예제 코드:

package main

import "fmt"

type Employee struct {
    Id   int64
    Name string
}

func main() {
    Employee_1 := Employee{Id: 10, Name: "Dixya Lhyaho"}
    fmt.Printf("%+v\n", Employee_1) // with Variable name
    fmt.Printf("%v\n", Employee_1)  // Without Variable Name
    fmt.Printf("%d\n", Employee_1.Id)
    fmt.Printf("%s\n", Employee_1.Name)
}

산출:

{Id:10 Name:Dixya Lhyaho}
{10 Dixya Lhyaho}
10
Dixya Lhyaho

encoding/json 패키지의Marshal 기능

또 다른 방법은 패키지encoding / jsonMarshal 함수를 사용하는 것입니다.

package main

import (
    "encoding/json"
    "fmt"
)

type Employee struct {
    Id   int64
    Name string
}

func main() {
    Employee_1 := Employee{Id: 10, Name: "Dixya Lhyaho"}

    jsonE, _ := json.Marshal(Employee_1)
    fmt.Println(string(jsonE))
}

산출:

{"Id":10,"Name":"Dixya Lhyaho"}

go-spew 패키지의 덤프 기능

또 다른 방법은 패키지go-spewDump 기능을 사용하는 것입니다. .

package main

import (
    "github.com/davecgh/go-spew/spew"
)

type Employee struct {
    Id   int64
    Name string
}

func main() {
    Employee_1 := Employee{Id: 10, Name: "Dixya Lhyaho"}
    spew.Dump(Employee_1)

}

산출:

(main.Employee) {
 Id: (int64) 10,
 Name: (string) (len=12) "Dixya Lhyaho"
}

go-spew 패키지를 설치하려면 터미널에서 다음 명령을 실행하십시오.

go get -u github.com/davecgh/go-spew/spew