Golang
-
[Go] The Go Programming Language #4-1: 배열Golang 2021. 12. 1. 04:29
이 시리즈는 "The Go Programming Language" 책을 바탕으로 작성되었습니다. 4장 : 복합 타입 네 가지 타입 (배열, 슬라이스, 맵, 구조체) 에 대해 알아본 후, 구조화된 데이터를 JSON 데이터로 인코딩하고 파싱하는 방법 및 템플릿에서 HTML을 생성하는 방법을 살펴본다. 배열과 구조체는 집합 타입 : 이 값들은 메모리에 있는 다른 값들을 연결한 것임. 배열은 동종(원소가 모두 같은 타입)인 반면, 구조체는 이종임. 배열과 구조체는 모두 고정된 크기를 가지는 반면, 슬라이스와 맵은 동적 데이터 구조이며 값을 추가할 때마다 커짐. 4.1 배열 배열은 0개 이상의 특정 타입 원소로 이뤄진 고정 길이 시퀀스다. 배열은 고정 길이기 때문에, 이보다는 크기가 늘어나거나 줄어들 수 있는 슬..
-
[Go] The Go Programming Language #3-6: 상수 (정리중)Golang 2021. 12. 1. 04:28
이 시리즈는 "The Go Programming Language" 책을 바탕으로 작성되었습니다. 3.6 상수 const 선언은 변수와 유사한 문법으로 명명된 값을 선언하지만 이 값은 상수이며, 프로그램 실행 중 값이 바뀌는 것을 방지함. // 예를 들어 pi와 같은 수학 상수는 선언의 값이 변하지 않으므로 상수가 변수보다 더 적합함. const pi = 3.14159 // 근삿값; math.pi가 더 정확함. 변수와 마찬가지로 하나의 선언에 여러 상수가 나올 수 있음. const ( e = 2.71828182845904523536028747135266249775724709369995957496696763 pi = 3.1415926535897932384626433832795028841971693993751..
-
[Go] The Go Programming Language #3-5: 문자열Golang 2021. 12. 1. 04:28
이 시리즈는 "The Go Programming Language" 책을 바탕으로 작성되었습니다. 3.5 문자열 문자열 살펴보기 문자열의 길이와 순서(위치) 내장된 len 함수는 문자열의 바이트 수를 반환하고, 인덱스 명령 s[i]는 문자열 s에서 0 ≤ i < len(s)일 때 i 번째 바이트를 반환함. s := "hello, world" fmt.Println(len(s)) // "12" fmt.Println(s[0], s[7]) // "104 119" ('h'와 'w') // 범위 밖의 바이트에 접근하려 하면 패닉이 일어남. c := s[len(s)] // 패닉: 인덱스가 범위를 벗어남. 아스키코드가 아닌 문자열의 UTF-8 인코딩에는 2개 이상의 바이트가 필요하므로 문자열의 i 번째 바이트가 반드시..
-
[Go] The Go Programming Language #3-4: 불리언Golang 2021. 12. 1. 04:28
이 시리즈는 "The Go Programming Language" 책을 바탕으로 작성되었습니다. 3.4 불리언 if 와 for 문의 조건절은 불리언이며, == 와 < 같은 비교 연산자는 불리언 결과를 생성함. 단항 연산자 ! 는 논리적 부정이므로 !true 는 false 이고, 이는 (!true == false) == true 로 쓸 수도 있음. 불리언 값 불리언 값은 &&(AND)와 ||(OR) 로 결합할 수 있으며, 여기에는 단축 연산이 적용됨. 왼쪽 피연산자 값에 의해 답이 이미 결정된 경우, 오른쪽 피연산자는 계산하지 않음. s != "" && s[0] == 'x' // s[0]을 빈 문자열에 적용하면 패닉이 발생함. &&는 ||보다 우선순위가 높기 때문에 다음과 같은 형식에는 괄호가 필요 없음..
-
[Go] The Go Programming Language #3-3: 복소수Golang 2021. 12. 1. 04:28
이 시리즈는 "The Go Programming Language" 책을 바탕으로 작성되었습니다. 3.3 복소수 Go에는 float32와 float64로 구성된 두 가지 크기의 복소수 complex64와 complex128을 제공함. 내장된 complex 함수는 실수부와 허수부로 복소수를 생성하며, 내장된 real과 imag 함수는 각각 실수와 허수를 추출함. var x complex128 = complex(1, 2) // 1+2i var y complex128 = complex(3, 4) // 3+4i fmt.Println(x*y) // "(-5+10i)" fmt.Println(real(x*y)) // "-5" fmt.Println(imag(x*y)) // "10" 부동소수점이나 10진 정수의 뒤에 i..
-
[Go] The Go Programming Language #3-2: 부동소수점 수 (실수)Golang 2021. 11. 30. 15:47
이 시리즈는 "The Go Programming Language" 책을 바탕으로 작성되었습니다. 3.2 부동소수점 수 (실수) 이 수의 산술적 속성은 모든 현대 CPU에 의해 구현된 IEEE 754 표준을 따름. 부동소수점 값의 한계는 math 패키지에서 찾을 수 있음. 상수 math.MaxFloat32 는 가장 큰 float32 로 약 3.4e38 이며, math.MaxFloat64 는 약 1.8e308 임. 가장 작은 양의 값은 각각 1.4e-45 와 4.9e-324 근처임. 실수 타입 종류 float32 : 대략 6자리 10진 숫자의 정확도를 가짐. float64 : 대략 15자리의 정확도를 가짐. 대부분의 경우 float64를 사용해야 함. 왜냐하면 float32 연산에서는 신중하게 처리하지 않을..
-
[Go] The Go Programming Language #3-1: 정수Golang 2021. 11. 30. 15:42
이 시리즈는 "The Go Programming Language" 책을 바탕으로 작성되었습니다. 3장 : 기본 데이터 타입 Go의 타입은 기본 타입, 결합 타입, 참조 타입, 인터페이스 타입의 네 가지 범주로 나뉜다. 기본 타입 : 숫자, 문자열, 불리언 결합 타입 : 배열, 구조체 참조 타입 : 포인터, 슬라이스, 맵, 함수, 채널 등을 비롯한 광범위한 그룹 인터페이스 타입 간단 설명 숫자 데이터 타입 : 정수, 부동소수점 수 (실수), 복소수 값의 크기와 부호 여부를 결정함. bool이나 불리언 타입 : 불리언 값으로 true와 false 두 가지만을 허용함. 문자열 불변의 바이트 시퀀스 (기계가 처리하는 문자의 형태) 텍스트 문자열은 통상적으로 유니코드 코드 포인트(룬)를 UTF-8로 인코딩한 시퀀..
-
[Go] The Go Programming Language #2-7: 범위Golang 2021. 11. 30. 05:38
이 시리즈는 "The Go Programming Language" 책을 바탕으로 작성되었습니다. 2.7 범위 선언과 수명 혼동하지 않기 선언의 범위는 소스코드 안에서 선언된 이름으로 해당 선언을 참조할 수 있는 구역임. 선언의 범위는 프로그램 텍스트의 영역으로, 컴파일 시의 속성임. 변수의 수명은 실행 중에 변수가 프로그램의 다른 구역에서 의해 참조할 수 있는 시간의 범위임. 변수의 수명은 실행 시의 속성임. 구문 블록과 어휘 블록 구문 블록 함수나 루프의 본체 등을 둘러싸는 중괄호로 묶인 문장들을 뜻함. 구문 블록 안에서 선언된 이름은 해당 블록 밖에서 볼 수 없음. 이 블록은 선언을 둘러싸고 범위를 결정함. 어휘 블록 전체 소스코드에 대한 광역 블록, 각 패키지별 블록, 각 파일별 블록, 각 for/..