go

Topic: go

구조체 초기화 방법

C 구조체 초기화 다음 C 구조체 초기화 방법 중 문법에 위배되는 것은? (단, C99 기준) struct MyStruct { int a; int b; }; // method 1 struct MyStruct m1 = {0, 1}; // method 2 struct MyStruct m2; m2 = (struct MyStruct){0, 1}; // method 3 struct { int ...

배열, 슬라이스 그리고 맵

Go의 built-in 자료구조인 배열, 슬라이스, 맵에 대해 자세히 살펴보자. 크기 배열, 슬라이스, 맵은 모두 복수의 요소를 저장할 수 있다. 따라서 몇 개의 요소를 가지고 있는 ...

상수에 대한 오해

우선 C/C++에서 상수를 만드는 키워드인 const와 final에 대해 간략히 정리해보자. C/C++ const의 역할 변수의 읽기전용 설정 = 상수화 (C++) 멤버 함수의 ...

특수 함수들

본문 중 심볼(symbol)에 대한 내용은 편의상 리눅스 환경에서 빌드한 바이너리를 readelf 명령으로 확인한 결과입니다. C/C++, Java에서 가장 특이한 함수는 누가 뭐래 ...

정수형 상수의 내부 처리

이 글은 마지막 commit id가 4ba5527…인 Go 소스 코드를 기준으로 합니다. 함수명, 변수/상수명, 변수/상수값 등은 버전에 따라 다를 수 있습니 ...

봉인해제 switch

Go의 switch 작성 규칙은 다음과 같다. SwitchStmt = ExprSwitchStmt | TypeSwitchStmt . 이 중 ExprSwitchStmt 규칙은 다음과 같다. ExprSwitchStmt = "switch" [ SimpleStmt ";" ] [ Expression ] "{" { ExprCaseClause } "}" . ExprCaseClause = ExprSwitchCase ":" StatementList . ExprSwitchCase = "case" ExpressionList | "default" . 자세히 보면 switch 뒤에 ...

별 것 없을 것 같은 상수의 별 것

상수의 타입과 한계 명시적이지 않은 듯 명시적인 Go에서 한 것처럼 reflect 패키지를 이용해 타입을 명시하지 않은 상수의 타입에 대해 알아보자. package main import "fmt" import "reflect" func main() { const A = ...

명시적이지 않은 듯 명시적인 Go

Go는 변수를 선언할 때 초기값을 같이 입력하면 굳이 타입을 명시하지 않아도 된다. var i = 1 f := 3.14 c := 1.0 + 1.0i 그렇다면 이 경우 i, f, c의 타입은 각각 어떻게 될까? G ...