ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Golang 기초[2]
    Go 2021. 4. 13. 00:10
    728x90
    반응형

    다음과 같은 환경에서 작업한다.

    > example
    |--> main.go

    1. Struct 사용하기

    main.go

    package main
    
    import (
    	"fmt"
    )
    
    type User struct {
    	UserID   string
    	Password string
    }
    
    func main() {
    	var user User
    	user = User{
    		UserID:   "아이디",
    		Password: "패스워드",
    	}
    
    	fmt.Println(user)
    }
    
    {아이디 패스워드}

     

    type User struct : 구조체를 선언하는 방식이다 User는 구조체 이름을 뜻한다.

     

    중괄호안에는 구조체의 내용이 들어가는데 변수의 이름과 타입을 순서대로 적는다.

     

     

    var user User

    var을 통해 변수선언을 해주는데 타입을 User로 한다.

     

    user = User{
    	UserID:   "아이디",
    	Password: "패스워드",
    }

    user변수에 값을 할당할 때는 다음과같이 타입(구조체 이름)을 쓰고,

    중괄호안에 각 변수들에 들어갈 값을 넣어 준다.

     

     

    Go에서는 다음과 같이 선언과 동시에 초기화를 할 수있다.

    user := User{
    		UserID:   "아이디",
    		Password: "패스워드",
    	}

     

     

    2. 구조체에 함수 추가하기

    main.go

    package main
    
    import (
    	"fmt"
    )
    
    type User struct {
    	UserID   string
    	Password string
    }
    
    func (user User) getUserID() string {
    	return user.UserID
    }
    
    func main() {
    	user := User{
    		UserID:   "아이디",
    		Password: "패스워드",
    	}
    
    	fmt.Println(user.getUserID())
    }
    
    아이디

     

    구조체에 변수뿐만 아니라 객체처럼 메소드(함수)를 추가해 줄 수 있다.

    func (user User) getUserID() string {
    	return user.UserID
    }

    func과 getUserID(함수이름) 사이에 '(user User)' 가 있다.

     

    User만 써도 되는데 이는 함수가 들어가 구조체를 의미한다. 따라서 User구조체를 만들어서 이 구조체를 통해서 함수를 사용할 수있다.

     

    User 앞에 user(변수명)는 이 함수를 사용하려는 구조체를 변수로 받아온것이다.

    따라서 이 함수를 사용할 구조체의 내용을 사용할 수 있게된다. (user.UserID)

     

    메인으로 와서

    user := User{
    		UserID:   "아이디",
    		Password: "패스워드",
    	}
    
    fmt.Println(user.getUserID())

     

    여기서 user.getUserID를 했는데 user의 UserID와 Password가 함수안의 user변수로 받을 수 있게되는것이다.

     

    따라서 return된 UserID값이 fmt.Println에 출력이 된다.

    728x90
    반응형

    'Go' 카테고리의 다른 글

    Golang - mod  (0) 2021.04.13
    Golang 기초 [1]  (0) 2021.04.12
    Golang - ORM(2) [8]  (1) 2021.02.08
    Golang - ORM(1) [7]  (0) 2021.02.07
    RaspberryPi로 Golang 서버만들기 - 회원관리 하기 (3) [6]  (1) 2021.01.06

    댓글

Designed by Tistory.