[Golang] Go 언어 기초 문법 (9) – 구조체

정의 구조체는 여러 필드를 묶어서 하나의 변수처럼 사용합니다. 배열은 같은 타입의 값들로만 연속된 메모리 공간에 저장된다면, 구조체는 다른 타입의 값을 연속된 메모리 공간에 저장됩니다. 정의 및 선언 type 키워드를 사용해서 타입의 명칭을 정의합니다. 타입명의 첫번째 글자가 대문자이면 패키지 외부로 공개되는 타입입니다. 이와 같이 관련이 있는 정보들을 하나의 구조체안에 정의해서 넣습니다. 그리고 구조체를 사용해서 예제를 구현해봅니다. … Read more

[Golang] Go 언어 기초 문법 (8) – 배열

배열 배열 선언시 주의해야 할 점 배열을 선언할때 실수를 방지하기 위해서 배열의 개수를 변수로 지정하면 좋습니다. 이때 배열의 개수를 지정하는 값은 반드시 “상수” 이어야 합니다. 다음은 에러가 발생하는 코드입니다. “n := 3” 이 구문은 변수를 선언하는 구문이기때문에 값의 변경이 가능합니다. 그래서 값을 변경할 수 없는 배열의 개수로 넣으면 에러가 납니다. 따라서, 아래 소스코드와 같이 상수로 … Read more

[Golang] Go 언어 기초 문법 (7) – 반복문

for 문 동작 원리 프로그램의 내부 동작은 비교와 반복이 거의 대부분을 차지한다고 해도 과언이 아닙니다. 이전에 비교문을 배웠으니 이제 반복문을 알아볼 차례입니다. Go언어에서는 C언어와는 다르게 while문이 없습니다. for문 만으로도 while문의 기능을 충분히 할 수 있기때문입니다. for문의 구조는 C언어와 매우 비슷하니 쉽게 이해가 되시리라 생각됩니다. for 문의 다양한 표현 continue와 break 이중 for 문 for문 안에서 … Read more

[Golang] Go 언어 기초 문법 (6) – 비교문

if문 “만약 ~ 이라면 … 해라.” 라는 뜻으로 해석 가능합니다. 이전에 포스팅 했던 변수, 상수, 연산자들을 써서 조건을 만들고, 조건이 참(true)이면 구문을 실행하고, 거짓이면 실행하지 않고 건너 뜁니다. 단, else 구문을 작성했다면 if 절에서 비교했던 조건이 거짓(false)일 경우 else 구문이 실행됩니다. if 초기문 Go 언어에서는 if문에 C언어의 for문 처럼 변수를 초기화 할 수 있는 초기문을 … Read more

[Golang] Go 언어 기초 문법 (5) – 상수

상수 선언 상수 사용 예 타입 없는 상수 타입 없는 상수는 변수에 복사될 때 타입이 정해진다. 상수와 리터럴 Tucker의 Go 언어 프로그래밍 참조. 책을 보면서 공부한 내용을 정리하면서 작성하는 글입니다. 따라서, 주제 하나를 많은 시간을 들여서 쓰지 않고, 간단하게 작성하는 것부터 시작해서, 계속 다듬어가면서 업데이트해 나갈 생각입니다. 참고하는 자료가 있을 때마다 출처를 적어 놓겠습니다. [이전글] … Read more

[Golang] Go 언어 기초 문법 (4) – 함수

함수 정의 함수는 함수 키워드, 함수명, 매개변수, 반환 타입, 함수 코드 블록으로 구성됩니다. 함수를 쓰는 이유 똑같은 변수들로 계산을 하는데, 중복되는 코드 양이 많은걸 볼 수 있습니다.이를 함수로 묶어서 중복코드를 개선하면 아래와 같이 바꿀 수 있습니다. 멀티 반환 함수 Go 언어에서는 함수에서 한번에 여러개의 리턴값을 반환할 수 있습니다. 재귀 호출 함수 안에서 자기 자신을 호출하는 … Read more

[Golang] Go 언어 기초 문법 (3) – 연산자

산술 연산자 산술 여산자는 사칙 연산, 비트 연산, 시프트 연산이 포함됩니다. 구분 연산자 연산 피연산자 타입 사칙연산과 나머지 + 덧셈 정수, 실수, 복소수, 문자열 – 뺄셈 정수, 실수, 복소수 * 곱셈 정수, 실수, 복소수 / 나눗셈 정수, 실수, 복소수 % 나머지 정수 비트 연산 & AND 비트연산 정수 | OR 비트 연산 정수 ^ XOR … Read more

[Golang] Go 언어 기초 문법 (2) – 변수

변수 정의 변수는 값을 저장하는 메모리 공간을 가리키는 이름입니다. 변경 가능한 수이기 때문에 변수라 부릅니다. 변수 선언 변수 선언 방법은 아래와 같습니다. [변수 선언 키워드] [변수명] [타입] = [초기값] 변수의 4가지 속성 숫자 타입 변수 이름 설명 값의 범위 uint8 1byte / 부호 없는 정수 0 ~ 255 uint16 2byte / 부호 없는 정수 0 … Read more

[Golang] Go 언어 기초 문법 (1) – 특징

Go 언어 특징 개념 존재여부 설명 클래스 무 클래스는 없지만, 메서드를 가지는 구조체를 지원함. 상속 무 상속을 지원하지 않음. 메서드 유 구조체가 메서드를 가질 수 있음. 인터페이스 유 인터페이스로 상속구조를 대신함. 익명함수 유 함수 리터럴이라는 이름으로 제공함. 가비지 컬렉터 유 고성능 가비지 컬렉터를 제공함. 포인터 유 메모리 주소를 가리키는 포인터가 존재함. 제네릭 프로그래밍 무 제네릭 … Read more