쉽고 빠른 Go 시작하기 - 4 (~2.2 Methods part Two)

Melon Coder·2024년 6월 4일

Go

목록 보기
4/14

struct의 이름(struct 내 변수 포함)을 대문자로 시작해야 다른 파일에서 해당 구조체에 접근이 가능함. (대문자: public, 소문자: private)

type Account struct {
	owner string
	balance int
}

return 되는 변수 앞에 *를 붙이는 것과 안붙이는 것의 차이

  • *를 붙이게 되면 변수의 주소를 반환한다. 따라서 원래 변수의 값을 변경하거나 큰 구조체를 복사하지 않고 주소만 전달하여 성능을 최적화 할 수 있다.

  • *를 안붙이면 변수의 값을 복사하여 반환하여 원래 변수와 독립적으로 사용하고자 할 때 사용한다.

go언어에서의 error handling

go언어에서는 자바스크립트와 달리 error를 직접 핸들링한다.
error을 알아서 exception해주지 않고 그 에러 값을 변수화 할 수도 있는데 변수화 할 때는 err를 접두사로서 앞에 붙여야 한다.

nil

nil은 자바스크립트의 null 혹은 파이썬의 none과 같다. (= zero value)

func NewAccount (owner string) *Account {
	account:= Account{owner: owner, balance: 0}
	return &account;
}

// Deposit x amount on your account
func (a *Account) Deposit(amount int) {
	a.balance += amount;
}

// Balance of your account
func (a Account) Balance() int {
	return a.balance;
}

// Withdraw x amount from your account
func (a *Account) Withdraw(amount int) error {
		if a.balance < amount {
			return errNoMoney
		}
		a.balance -= amount;
		return nil;
}
profile
About me: https://resume-seven-beige.vercel.app/

0개의 댓글