분류 전체보기42 chapter3(8) primitive type - interface{} and nil 책에는 interface{} 타입을 소개하는 정도의 분량을 갖고 있다. 예제도 2개뿐.... 그래서 궁금한 것들을 스스로 예제 코드로 만들어 포스트 하겠다. interface{} Go언어도 Java의 Object class와 같이 최상위 타입이 존재한다. 이전 글에서 배열 변수 선언 시 [5]int는 대괄호([]) 까지가 타입이라고 말했었는데 interface 또한 중괄호({}) 까지가 타입이다. interface{} 변수의 선언 방법은 명시적 선언뿐인데 초기화 영역에 어떠한 값이든 초기화가 가능하다. 위 사진과 같이 모든 자료형을 저장할 수 있다. Go는 타입을 엄청 강하게 검사하는데 a변수에 b변수를 대입할 때 오류가 발생할까? 가능하다. 그럼 interface{} 타입인 변수를 묵시적으로 변수 선언.. 2022. 2. 6. 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. 이전 1 ··· 4 5 6 7 8 9 10 11 다음