가장 빨리 만나는 Go 언어 오탈자

저작권 안내
  • 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
  • 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.

오탈자(정오표)

목차

  1. 1쇄
    1. 42p
    2. 45p
    3. 61p
    4. 95p
    5. 99p
    6. 214p
    7. 348, 350p
    8. 352, 353p

1쇄

42p

주석의 허수부에서 i는 삭제. 허수부는 숫자만 표기합니다.

var num1 complex64 = 1 + 2i           // 실수부 1, 허수부 2i
... (생략)

->

var num1 complex64 = 1 + 2i           // 실수부 1, 허수부 2
... (생략)
  • 서장원님 제보해주셔서 감사합니다.

45p

다음과 같이 uint32에서 uint16으로 변환하는 것처럼 크기가 작은 자료형으로 변환하면 넘치는 값을 버리게 됩니다.

var num1 uint16 = 10
var num2 uint32 = 80000

fmt.Println(num1 + uint16(num2)) // 14474: uint32에서 uint16으로 변환하면서 넘치는 값을 버림

80010이 나와야 하는데 실행을 해보면 14474가 나옵니다. 왜냐하면 uint16에서 저장할 수 있는 가장 큰 숫자는 65535인데 uint32 변수에 저장된 80000을 uint16으로 변환하면서 넘치는 값은 버리기 때문입니다.

int16 -> uint16
int32 -> uint32

61p

표 13-1

=<< 비트를 왼쪽으로 이동 후 대입
=>> 비트를 오른쪽으로 이동 후 대입

->

<<= 비트를 왼쪽으로 이동 후 대입
>>= 비트를 오른쪽으로 이동 후 대입
  • eubnara님 제보해주셔서 감사합니다.

95p

d := [...]string{"Maria", "Andrew", "Jonh"} // 초기화할 요소가 3개이며 ...을 사용했으므로 
                                            // 배열 크기는 3으로 설정됨

5개 -> 3개

  • K. Ko님 제보해주셔서 감사합니다.

99p

c := make([]int, 5)          // 슬라이스를 선언할 때 var 키워드, 자료형과 [] 생략

[] 뒤에 int 추가

  • Kyungkoo Kang님 제보해주셔서 감사합니다.

214p

	var b interface{}
	b = 1

	fmt.Println(reflect.TypeOf(b))         // int
	fmt.Println(reflect.ValueOf(b))        // <int Value>
	fmt.Println(reflect.ValueOf(b).Int())  // 1
	fmt.Println(reflect.ValueOf(b).Elem()) // 런타임 에러

포인터는 일반 변수와는 다르게 값을 가져오려면 reflect.ValueOf 함수로 값 정보 reflect.Value를 얻어온 뒤 다시 Elem 함수로 값 정보를 가져와야 합니다. 그리고 변수의 타입에 맞는 Int, Float, String 등의 함수로 값을 가져옵니다.

여기서는 int 포인터 a의 값 정보에서 바로 Int 함수로 값을 가져오려면 런타임 에러가 발생합니다. 따라서 Elem 함수로 포인터의 메모리에 저장된 실제 값 정보를 가져와야 합니다.

빈 인터페이스 b1을 대입하면 타입 정보는 int이고 값 정보는 int입니다. 따라서 인터페이스의 값을 가져오려면 변수 타입에 맞는 Int, Float, String 등의 함수를 사용하면 됩니다.

348, 350p

		_, err = c.Write(data[:n]) // 클라이언트로 데이터를 보냄
		if err != nil {
			fmt.Println(err)
			return
		}

_, err = 추가

  • Jaehoon Kim님 제보해주셔서 감사합니다.

352, 353p

			_, err := c.Write([]byte(s)) // 서버로 데이터를 보냄
			if err != nil {
				fmt.Println(err)
				return
			}

_, err := 추가

  • Jaehoon Kim님 제보해주셔서 감사합니다.

저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.

Published

2015-06-01