일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- tour of go
- JUCE
- c++ heap
- vim-go
- JUCE library
- 연결리스트
- 리듬게임
- gui
- C++ gui
- C++ gui 라이브러리
- 프로그래밍
- go channel
- 백준
- BOJ
- JUCE 튜토리얼
- LOB
- 공룡책
- 알고리즘
- Nebula
- C언어
- JUCE라이브러리
- C++ library
- 운영체제
- go
- C++
- Docker
- 코딩
- a tour of go
- OS
- 자료구조
- Today
- Total
목록go (17)
CafeM0ca
tour.golang.org/methods/21 A Tour of Go tour.golang.org Reader는 io에 있는 인터페이스다. 특정 타입이 있으면 위 형식에 T 대신에 해당 타입을 치환시켜주면 된다. Go가 클래스가 없어서 멤버함수 대신에 이런식으로 사용하는 것인데, 이해가 잘 안된다면 cafemocamoca.tistory.com/281 를 참고하자 코드를 보면 MyReader를 Receiver로 갖는 Read method를 만들어주면 된다. 인자로 들어오는 b에 'A'를 채워주면 된다. tour.golang.org/methods/23 A Tour of Go tour.golang.org Read로 읽은걸 ROT13을 적용하는 문제인데 io.Reader는 Wrapper 형식으로 잘 쓰인다고 ..
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/1 A Tour of Go tour.golang.org Go는 클래스가 없다. 하지만 특정 타입에 대한 메소드를 만들 수 있다. 이게 무슨 말 이냐 하면 Vertex와 Vertex3D 구조체가 있다. Vertex는 Abs라는 메소드를 갖는다. - func (v Vertex) Abs() float64 Vertex3D는 Abs라는 함수를 통해 연산이 가능하다. main 함수에서 vertex구조체는 .을 통해 메소드를 호출하고 있고 vertex3D구조체는 Abs 함수를 통해 연산하고 있는 것을 볼 수 있다. 다른 언어랑 비교해봤을 때 이런 구조로 가져가면 장점이 무엇인가 생각해보면 내 생각엔 타 언어에서 클래스에 무수히 많은 함수들이 있고 생성된 인스턴스들이 절반도 ..
Go언어의 함수는 closure가 될 수 있다. Closure는 함수값을 함수 밖에서 참조할 수 있는 변수를 말한다. 소스코드를 보면 adder() 함수는 반환값으로 int형 변수를 매개변수로 받고 return 값이 int인 함수를 리턴한다. adder 함수에서 리턴값으로 익명함수를 반환한다. pos, neg 변수에는 각각의 고유의 익명함수를 갖고 있는 상태라서 출력시 for문 안에서 서로 다른 값을 보장받게 된다. c++로 치면 함수 객체를 변수에 할당해준 느낌. closure를 사용해서 피보나치 수를 구현하는 문제다. 함수 안에서 현재 출력할 수와, 다음 수를 설정해주고 함수가 끝나기전에 변수의 값들을 바꿔주면 피보나치 수가 작동한다.
tour.golang.org/moretypes/23 A Tour of Go tour.golang.org 문제 Implement WordCount. It should return a map of the counts of each “word” in the string s. The wc.Test function runs a test suite against the provided function and prints success or failure. You might find strings.Fields helpful. 단어를 map에 저장하고 나온 갯수만큼 매핑하여 카운팅하는 문제. WordCount 함수 내부를 채워넣으면 된다. func WordCount(s string) map[stirng]int { m ..
A Tour of Go 정리 code convention은 https://github.com/golang/go/wiki/CodeReviewComments?fbclid=IwAR1RtGyVpP_iPKMqReVwKfufv0aD9J7JQfwuTNFnnVgxKbW5MMpMcqKCj-o 를 바탕으로 습관을 들이자. array var a [10]int 위 처럼 사이즈가 고정되어 있다. slice slice 자료형은 동적으로 크기가 달라진다. package main import "fmt" func addSliceValue(s []int) { for i := 0; i < len(s); i++ { s[i]++ } } func main() { primes := [6]int{2, 3, 5, 7, 11, 13} // prime..