일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- OS
- C++ gui 라이브러리
- 백준
- go
- 알고리즘
- BOJ
- vim-go
- go channel
- tour of go
- JUCE라이브러리
- 운영체제
- c++ heap
- gui
- 자료구조
- 리듬게임
- C++ gui
- JUCE 튜토리얼
- JUCE
- a tour of go
- C언어
- C++ library
- C++
- 공룡책
- 프로그래밍
- 연결리스트
- Docker
- 코딩
- LOB
- Nebula
- JUCE library
Archives
- Today
- Total
CafeM0ca
[Go] A tour of Go exercise Reader, rot13Reader 풀이 본문
반응형
Reader는 io에 있는 인터페이스다.
특정 타입이 있으면 위 형식에 T 대신에 해당 타입을 치환시켜주면 된다.
Go가 클래스가 없어서 멤버함수 대신에 이런식으로 사용하는 것인데, 이해가 잘 안된다면 cafemocamoca.tistory.com/281 를 참고하자
코드를 보면 MyReader를 Receiver로 갖는 Read method를 만들어주면 된다.
인자로 들어오는 b에 'A'를 채워주면 된다.
Read로 읽은걸 ROT13을 적용하는 문제인데
io.Reader는 Wrapper 형식으로 잘 쓰인다고 한다.
Read함수를 보면 r.rRead(b)로 먼저 읽고
그 다음에 반복문 돌면서 값을 바꿔주는데
C-style이 아니라 처음엔 좀 혼란이 왔다.
근데 이게 가능한 이유를 곰곰히 생각해봤더니 Read는 함수의 인자로 []byte(slice 자료형)을 받는다.
따라서 반복문에서 값을 바꿔줘도 slice 특성상 값이 같이 바뀐다.
Reference: yourbasic.org/golang/io-reader-interface-explained/
반응형
'Programming > Go' 카테고리의 다른 글
[Go] A tour of go Exercise: Equivalent Binary Trees 풀이 (0) | 2020.12.08 |
---|---|
[Go] Goroutine과 channel (0) | 2020.12.07 |
[Go] A Tour of Go Exercise : Stringers 풀이 (0) | 2020.12.05 |
[Go] Type assertion, Type switch (0) | 2020.12.04 |
[Go] Interface (0) | 2020.12.04 |
Comments