-
Golang 기초[2]Go 2021. 4. 13. 00:10728x90반응형
다음과 같은 환경에서 작업한다.
> 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