Golang에서 생성자 생성
Jay Singh
2023년1월30일
Go는 Java와 같은 의미의 객체 지향 언어가 아닙니다. 생성자는 표준 언어 기능이 아닙니다.
Go 프로그램을 개발할 때 서로 약하게만 연결된 모듈식 구성 요소를 구성해야 합니다. 이 기사에서는 다양한 함수를 사용하여 Golang에서 생성자를 만드는 방법을 다룹니다.
init
함수를 사용하여 Golang에서 생성자 생성
Go에는 기본 생성자가 없지만 모든 유형에 대해 함수를 정의할 수 있습니다. 이 예제에서는 init
함수를 사용하여 생성자를 생성합니다.
package main
import "fmt"
type Thing struct {
Name string
Num int
}
func (t *Thing) Init(name string, num int) {
t.Name = name
t.Num = num
}
func main() {
t := new(Thing)
t.Init("Hello Boss!", 99)
fmt.Printf("%s: %d\n", t.Name, t.Num)
}
출력:
Hello Boss!: 99
struct
함수를 사용하여 Golang에서 생성자 생성
이 예제의 struct
함수를 사용하여 직원의 이름과 나이를 선언합니다.
package main
import "fmt"
type Employee struct {
Name string
Age int
}
func (e *Employee) Init(name string, age int) {
e.Name = name
e.Age = age
}
func main() {
emp := new(Employee)
emp.Init("Jay Singh", 23)
fmt.Printf("%s: %d\n", emp.Name, emp.Age)
}
출력:
Jay Singh: 23
또 다른 예는 예에서 newUser
생성자 메서드로, 새 사용자 struct
를 생성합니다. 함수는 새로 생성된 구조체에 대한 포인터를 반환합니다.
package main
import "fmt"
type User struct {
firstName string
lastName string
email string
}
func newUser(firstName string, lastName string, email string) *User {
user := User{firstName, lastName, email}
return &user
}
func main() {
user := newUser("Jay", "Singh", "jayexamplesingh@gmail.com")
fmt.Println("firstName:", user.firstName)
fmt.Println("lastName:", user.lastName)
fmt.Println("email:", user.email)
}
출력:
firstName: Jay
lastName: Singh
email: jayexamplesingh@gmail.com