GoGolang 시작하기

메소드(Method)

메소드는 함수와 비슷하지만 객체에 속한다는 점에서 차이가 있다.


메소드 만드는 법

 
// object.go
func (o object) Method(something string) int {
	//...doing Something..
}
 
 
// main.go
func main(){
 
	o.Method()
}
 

Receiver

GO에서는 (o object) 를 리시버(receiver) 라고 부른다. o 는 변수명로 object 는 타입으로 분류된다.

⚠️ receiver는 객체(struct)의 첫 글자를 소문자로 작성해야된다는 규칙이 있음


⚠️ 객체를 직접적으로 변경할 때는 pointer를 사용하고 객체를 읽기만 한다면 객체 복사본을 사용한다.

Error Handling

GO에서는 try-catch 와 같은 개념이 없기때문에 직접 하나하나 유효성 검사를 실행해야한다.

에러는 아래와 같이 처리한다.

 
func (a *Account) Withdraw(amount int) error {
 
	if a.balance < amount {
	
		return errors.New("Can't withdraw you are poor")
	
	}
	
	
	a.balance -= amount
	
	
	return nil
 
} 
 

nil

null 과 비슷한 개념

GoRoutines

동시 작업을 도아주는 기능

Channel

gorutine 사용시, 메인 함수와 값을 공유할 수 있는 변수, gorutine의 수만큼 받아올수 있다. 보내기 : channel <- value 받아오기 : varable := <- channel