CafeM0ca

[Go] A tour of Go exercise Reader, rot13Reader 풀이 본문

Programming/Go

[Go] A tour of Go exercise Reader, rot13Reader 풀이

M0ca 2020. 12. 6. 11:02
반응형

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 형식으로 잘 쓰인다고 한다.

Read함수를 보면 r.rRead(b)로 먼저 읽고

그 다음에 반복문 돌면서 값을 바꿔주는데

C-style이 아니라 처음엔 좀 혼란이 왔다.

근데 이게 가능한 이유를 곰곰히 생각해봤더니 Read는 함수의 인자로 []byte(slice 자료형)을 받는다.

따라서 반복문에서 값을 바꿔줘도 slice 특성상 값이 같이 바뀐다.

 

 

Reference: yourbasic.org/golang/io-reader-interface-explained/

 

How to use the io.Reader interface

CODE EXAMPLE An io.Reader is an entity from which you can read a stream of bytes. The standard library has many Reader implementations, including in-memory byte buffers, files and network connections. Readers are accepted as input by many utilities such as

yourbasic.org

 

반응형

'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