Search

Golang - 3장

생성일
2024/08/13 14:28
Category
Study&Language
태그
Golang
Go 언어 특징
개념
있다/없다
설명
클래스
없다
클래스는 없지만, 메서드를 가지는 구조체를 지원
상속
없다
상속을 지원하지 않는다.
메서드
있다
구조체가 메서드를 가질 수 있다
인터페이스
있다
상속이 없지만 인터페이스 있다
익명 함수
있다
함수 리터럴이라는 이름으로 제공
가비지 컬렉터
있다
고성능 가비지 컬렉터 제공
포인터
있다
메모리 주소를 가리키는 포인터가 있다
제네릭 프로그래밍
없다
제네릭 프로그래밍을 지원하지 않는다
네임스페이스
없다
네임스페이스를 제공하지 않는다. 모든 코드는 패키지 단위로 분리 된다.
코드 실행
코드가 프로그램이 되어 실행되기 까지 5단계를 거친다.
1.
폴더 생성
2.
.go 파일 생성 및 작성
3.
Go 모듈 작성
4.
빌드
5.
실행
폴더가 다르면 패키지도 다르다.

모듈

Go 1.16 버전 이후로 Go 모듈이 기본으로 적용된다.
모든 Go 코드는 빌드하기 전에 모듈을 생성해야 한다.
모듈 생성은 go mod init 명령으로 실행하며, go mod init 뒤에 모듈 이름을 적어준다.
폴더명과 같은 golang-study/goodbye 를 넣어 준다.
go.mod 파일에는 모듈명, Go 버전, 필요한 패키지 목록 정보가 담겨 있다.

빌드

go 빌드 명령은 Go 코드를 기계어로 변환하여 실행 파일을 만든다.
GOOS, GOARCH 환경 변수를 조정해서 다른 운영체제와 아키텍처에서 실행되는 실행 파일을 만들 수 있다.
go tool dist list
Shell
복사
GOOS=linux GOARCH=amd64 go build
Shell
복사
package main import "fmt" func main() { fmt.Println("goodbye world") }
Go
복사
fmt 패키지는 표준 입출력을 다루는 내장 패키지이다
표준 입출력으로 텍스트를 출력하거나 입력받을 때 사용한다
Println 대소문자 구분 해야 한다
go build
Go
복사
./hellogo hello world
Go
복사