특징

개념 O/X 설명
클래스 X 클래스는 없지만, 매서드를 가지는 구조채를 지원
상속 X 상속 미지원
메서드 O 구조체가 메서드를 가질 수 있음
인터페이스 O 상속이 없지만 인터페이스는 있음
익명 함수 O 함수 리터럴이라는 이름으로 제공
가비지 컬렉터 O 고성능 가비지 컬렉터 제공
포인터 O 메모리 주소를 가리키는 포인터 존재
제네릭 프로그래밍 O 1.18 버전부터 지원
네임스페이스 X 모든 코드는 패키지 단위로 분리

코드 실행 까지 단계

  1. 폴더 생성
    1. 같은 폴더에 위치한 .go 파일은 모두 같은 패키지에 포함됨
  2. .go 파일 생성 및 작성
  3. Go 모듈 생성
    1. 1.16 버전 이후로 Go 모듈 기본 적용
    2. go mod init DIRS 로 생성이 필요함
  4. 빌드
    1. 기계어 실행 파일 생성
    2. 빌드 가능한 아키텍처 목록
      • go gool dist list
  5. 실행

Hello World 코드 뜯어보기

/*
이 코드가 어떤 패키지에 속해 있는지 선언
go 언어의 모든 코드는 패키지 선언으로 시작해야 함

main() 함수가 없는 패키지는 패키지 이름으로 main 을 쓸 수 없음
곧, 실행 파일을 만들 수 없고 다른 패키지에서 import 할 함수로 사용됨
*/
package main

// 표준 입출력 내장 패키지
import "fmt"

/*
프로그램의 진입점
main() 함수는 프로그램의 시작과 끝을 나타냄
*/
func main() {
	fmt.Println("Hello, World!")
}

변수

변수

변수 선언

var a int = 10
  1. var

    변수 선언 키워드

  2. a

    변수명

  3. int

    타입

  4. 10

    초기 값

변수명 규칙