일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- C언어
- Docker
- LOB
- 운영체제
- JUCE 튜토리얼
- BOJ
- JUCE라이브러리
- 백준
- Nebula
- a tour of go
- C++ gui 라이브러리
- C++ gui
- 코딩
- go
- 연결리스트
- JUCE library
- 자료구조
- C++
- vim-go
- c++ heap
- OS
- gui
- tour of go
- 리듬게임
- go channel
- JUCE
- C++ library
- 프로그래밍
- 공룡책
- 알고리즘
- Today
- Total
목록a tour of go (4)
CafeM0ca
tour.golang.org/methods/18 A Tour of Go tour.golang.org stringer에 대해서 먼저 알아보자면 fmt 패키지에 정의된 인터페이스로 흔하게 사용한다. Stringer는 특정 타입을 string으로 묘사할 수 있다. fmt 패키지를 보면 이 인터페이스가 값을 출력하는 것을 볼 수 있다 10번쨰줄을 보면 (p Person)을 receiver로 하는 메소드가 정의되어 있다. return 할 때 fmt.Sprintf로 포멧을 지정해준다. 17번쨰줄에서 출력을 하게되면 사전에 지정한 포멧으로 출력된다. Go를 쌩 처음한다면 어색할 수도 있는데(필자도 혼란스럽다) 비슷한게 뭐가 있나 생각해보니까 C++에서 오버로딩을 생각하면 이해가 쉽다. Name과 Age를 멤버변수로 ..
tour.golang.org/methods/15 A Tour of Go tour.golang.org Type assertion은 interface에 할당한 값에 내재된 구체적인 값에 접근을 제공한다. 코드를 보면 assertion은 내장된 값과 assertion이 발생 여부에 대한 bool type의 값을 반환한다. 17번째 코드를 보면 float64로 타입을 확인하고 있는데 assertion값을 받는 변수가 없어서 트리거가 작동하여 panic이 발생한다. 이렇게 타입을 체크하는 문법은 switch 구문에서 유용하게 사용할 수 있다.
tour.golang.org/methods/9 A Tour of Go tour.golang.org Go는 클래스가 없다. Interface 타입은 메소드 시그니쳐를 갖는다. interface 타입은 메서드를 갖는 값들을 가질 수 있다. 처음에 Abser라는 인터페이스를 선언했고 Absersms Abs()라는 메서드를 갖는다. 오른쪽 코드에서 Abs는 2개가 있다. 1. MyFloat를 value로 받는 메소드 2. Vertex를 pointer로 받는 메소드 Abser 타입의 변수 a에 f를 대입한다. f는 MyFloat 타입으로 Abs함수를 갖고 있다. f의 Abs는 Receiver가 value다. 따라서 a = f로 대입한다. v의 Abs는 Receiver가 pointer다. 따라서 a = &v로 대입..
tour.golang.org/methods/1 A Tour of Go tour.golang.org Go는 클래스가 없다. 하지만 특정 타입에 대한 메소드를 만들 수 있다. 이게 무슨 말 이냐 하면 Vertex와 Vertex3D 구조체가 있다. Vertex는 Abs라는 메소드를 갖는다. - func (v Vertex) Abs() float64 Vertex3D는 Abs라는 함수를 통해 연산이 가능하다. main 함수에서 vertex구조체는 .을 통해 메소드를 호출하고 있고 vertex3D구조체는 Abs 함수를 통해 연산하고 있는 것을 볼 수 있다. 다른 언어랑 비교해봤을 때 이런 구조로 가져가면 장점이 무엇인가 생각해보면 내 생각엔 타 언어에서 클래스에 무수히 많은 함수들이 있고 생성된 인스턴스들이 절반도 ..