본문 바로가기

분류 전체보기45

chapter3(7) primitive type - array(수정) array 프로그래밍 언어에서 array라 하면 보통 정적 배열(static array)을 의미한다. 정적 배열은 배열 자체로 확장 또는 축소가 안된다. 정적 배열의 반대는 동적 배열인데 동적 배열은 정적 배열과 같지만 대부분의 프로그래밍 언어는 동적 배열을 API [Application Programming Interface]로 지원하기 때문에 개발자가 직접 배열을 확장하거나 축소하는 코드를 작성하지 않고 사용할 수 있다. Java는 ArrayList라는 Class를 API로 지원하고 Go는 slice라는 API로 지원한다. (slice라는 타입이 있는 게 아니고 array선언 방식과 내장 API을 사용하는 거다.) 오늘은 array를 기준으로 포스트 할 예정이고 slice를 포스트 할 때 array의.. 2022. 2. 2.
chapter3(6) primitive type - rune and string rune Go에는 특이한 자료형이 있다. rune이라는 자료형인데 책에는 문자를 표현하는 자료형이라고 소개하면서 정확하게는 유니코드(unicode)의 코드 포인트를 나타내는 "특수한 정수 자료형"이다.라고 쓰여 있다. 그래서 rune은 int32의 별명으로 정의돼 있어 음수도 표현할 수 있다. byte type처럼 rune type 또한 숫자를 저장하든 문자를 저장하든 타입은 int32이다. 그렇다고 int32와 rune 타입이 다른 부분이 있냐? 물으면 없다... 심지어 함수의 시그니쳐에서 rune이라 명시됐어도 int32를 받아준다.... 그냥 rune type은 개발자가 이해하기 편하게 가독성 측면으로 만들어 놓은 것 같다. rune type의 값으로 작은따옴표('A')에 문자 한 개를 넣어 사용할.. 2022. 2. 1.
chapter3(5) primitive type - float and complex 본인은 이 실수를 실무에서도 많이 사용하지도 않았고 알고리즘 문제를 풀 때만 가끔 반환 타입으로 쓴 경우 말곤 없어 깊이 공부해보려 했지만.... borrow를 공부하면서 포기를 했다....ㅠㅠ 그래서 이번엔 가볍게 java와의 차이랑 책에 나와있는 몇 개의 예제만 포스트 하려고 한다. (complex는 들어 보지도 못했다... ㄷㄷ) float Go는 float32와 float64라는 실수 자료형을 지원하고 있다. Go 역시 Java와 c#과 같이 IEEE-754 표준을 따르고 있고 float32는 단정도(single-precision), float64는 배정도(Double-precision) 부동소수점형 실수를 저장한다 책에 나와있다. float32와 float64의 차이는 정밀도라 생각하면 된다. .. 2022. 2. 1.
chapter3(4) primitive type - wrap around wrap around는 엄청 쉽게 이해할 수 있는 내용인 거 같지만 Go를 공부하면서 처음 접한 이론?이라 단독 포스트를 하게 됐다. 이번에 공부하면서 처음 알게 된 것부터 wrap around까지 천천히 최대한 자세히 서술해보겠다. 원래 알고 있던 2진수를 조금 더 깊고 자세하게 알게 되는 계기가 됐는데 그중 msb와 lsb가 뭔지부터 설명하겠다. lsb [least significant bit] bit의 맨 오른쪽에 있는 bit를 뜻하고 연산의 시작점이라 할 수 있다. msb [most significant bit] bit의 맨 왼쪽에 있는 bit를 뜻하고 signed int는 msb가 0 이면 +(plus), 1 이면 -(minus)를 표현하고 unsigned int는 2^n으로 사용된다. wrap.. 2022. 1. 30.