더북(TheBook)

Note math.MaxUint8과 fmt.Errorf() 함수

• math.MaxUint8

math 패키지에 정의된 uint8 타입의 최댓값(255)이다.

math 패키지에는 타입별 최댓값이 상수로 정의되어 있다.

const (
        MaxInt8 = 1<<7 - 1
        MinInt8 = -1 << 7
        MaxInt16 = 1<<15 - 1
        MinInt16 = -1 << 15
        MaxInt32 = 1<<31 - 1
        MinInt32 = -1 << 31
        MaxInt64 = 1<<63 - 1
        MinInt64 = -1 << 63
        MaxUint8 = 1<<8 - 1
        MaxUint16 = 1<<16 - 1
        MaxUint32 = 1<<32 - 1
        MaxUint64 = 1<<64 - 1
)

• fmt.Errorf() 함수

주어진 문자열을 기반으로 error를 만들어 반환한다.

다음 연산자는 모든 숫자 타입에 사용할 수 있다

표 3-6 모든 숫자 타입에 사용할 수 있는 연산자

+x

-x

x++

x--

x += y

x -= y

x *= y

x /= y

x + y

x - y

x * y

x / y

증감 연산자(++, --)는 후치 연산으로만 사용할 수 있고 반환 값은 없다. 이는 증감 연산자의 과도한 사용으로 코드의 가독성이 떨어지는 것을 막기 위해서다. 표현식에 증감 연산자를 사용하거나 증감 연산자로 전치 연산을 하면 코드가 이해하기 어려워진다. 다음 코드는 모두 Go에서 사용할 수 없는 코드이다.

++x          // 컴파일 에러
y = x++      // 컴파일 에러
print(x++)   // 컴파일 에러
print(++x)   // 컴파일 에러
if x++ > 0 { // 컴파일 에러
  ...
}

다음 연산자는 정수 타입에만 사용할 수 있다.

표 3-7 정수 타입에만 사용할 수 있는 연산자

^x

x %= y

x &= y

x |= y

x ^= y

x &^= y

x >>= u

x <<= u

x % y

x & y

x | y

x ^ y

x &^ y

x << u

x >> u

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.