일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- 패스트캠퍼스업스테이지에이아이랩
- package
- golang slice
- scope
- golang array
- method
- golang interface
- struct
- 변수
- keyword
- array
- golang
- 패스트캠퍼스업스테이지부트캠프
- slice
- 메서드
- 스코프
- 국비지원
- receiver method
- receiver
- 타입
- 패스트캠퍼스
- 함수
- Pointer
- golang slice remove
- 상수
- UpstageAILab
- golang pointer
- 패스트캠퍼스AI부트캠프
- Interface
- 업스테이지패스트캠퍼스
Archives
- Today
- Total
느리지만 꾸준히, 코딩
Golang func 와 method 본문
Go 프로그래밍 언어에서 함수와 메서드는 코드 구조화와 재사용성을 위한 핵심 요소입니다. 이 두 가지 개념은 비슷해 보이지만 중요한 차이점이 있습니다.
함수 (Functions)
함수는 특정 작업을 수행하는 독립적인 코드 블록입니다.
- func 키워드로 정의합니다.
func String() {
// ... some code
}
- 이름, 매개변수 목록, 반환 타입을 가집니다.
// 이름, 매개변수 목록, 반환 타입을 가집니다.
func Add(a, b int) int {
return a + b
}
- 여러 값을 반환할 수 있습니다.
// 여러 값을 반환할 수 있습니다.
func Swap(a, b int) (int, int) {
return b, a
}
- 독립적으로 호출됩니다.
메서드 (Methods)
메서드는 특정 타입과 연관된 함수입니다.
- 함수와 유사하지만 특정 타입(리시버)에 바인딩됩니다.
type MyInt int
func (a MyInt) Add(b MyInt) MyInt {
return a + b
}
- 리시버를 통해 해당 타입의 데이터에 접근할 수 있습니다.
type MyInt int
// 리시버를 통해 해당 타입의 데이터에 접근할 수 있습니다.
func (a *MyInt) AddAssign(b MyInt) {
*a += b
}
- 객체 지향 프로그래밍의 개념을 Go에서 구현하는 방법입니다.
type Person struct {
Name string
Age int
}
// 메서드는 특정 타입에 바인딩되어 해당 타입의 데이터에 접근할 수 있습니다.
func (p Person) Greet() string {
return "Hello, my name is " + p.Name
}
// 포인터 리시버를 사용하면 해당 데이터를 수정할 수 있습니다.
func (p *Person) GrowUp() {
p.Age++
}
함수 vs 메서드
주요 차이점:
- 정의 방식: 함수는 독립적으로 정의되고, 메서드는 특정 타입에 바인딩됩니다.
- 호출 방식: 함수는 이름으로 직접 호출, 메서드는 타입의 인스턴스를 통해 호출합니다.
- 리시버: 메서드는 리시버를 가지며, 이를 통해 타입의 데이터에 접근합니다.
정리
Go에서 함수와 메서드는 각각 고유한 용도와 장점을 가지고 있습니다. 함수는 독립적인 작업에, 메서드는 특정 타입과 연관된 동작을 구현할 때 효과적입니다.
'프로그래밍 > Golang' 카테고리의 다른 글
Golang Interface - 포인터와 값 타입의 개념 및 활용 (0) | 2024.07.24 |
---|---|
Golang의 struct(구조체)와 receiver(리시버) 메서드: 객체 지향적 설계의 새로운 접근 (0) | 2024.07.23 |
Golang type(타입) 키워드 탐구 : Named Type과 Type Alias의 차이와 활용 (0) | 2024.07.21 |
Golang Constants(상수) (0) | 2024.07.20 |
Golang 변수와 Scope(스코프) 이해하기 (0) | 2024.07.19 |