본문 바로가기
Golang/Study

chapter2(1)

by 윤원용 2022. 1. 17.

chapter2는 프로그램의 구성과 실행이다.

본인은 개인적으로 java를 좋아하기 때문에 java와 Go를 비교하는 식으로 진행할 것 같다.

 

Golang의 코드 구조를 보면

go code

위 이미지는 가장 기본적인 구성이다.

 

java와 엄청 다른 부분은 ; (세미클론)으로 문자의 끝을 알리지 않아도 컴파일 시점에서 , (콤마)와 } (중괄호)을 기준으로 문장의 끝을 알 수 있다고 한다.

 

package는 한 파일에 한 개만 사용할 수 있고

 

import는 필수는 아니다.

 

거의 모든 프로그래밍 언어는 main함수를 통해 프로그램의 시작점(Entry Point)을 지정한다.

 

함수를 선언할 때 필요한 예약어는 func(function의 약자)이다.

 

go와 java를 기준으로 조금 독특한 부분이 있는데 import 예약어에 사용하지 않은 모듈을 명시하고 실행하면 오류가 난다는 점이다.

 

java는 실행 시 오류 없이 실행되지만 IDE를 사용한다면 경고표시로 해당 import구문에 주황색 물결선이 표시된다.

java 사용하지 않는 파일

반대로 go는 vscode에서 코딩하는데 플러그인인 Go는 사용하지 않는 파일이 import 구문에 존재하면 에러를 표시하고 저장 시 그냥 없애버린다.... 

go 사용하지 않는 파일

반대로 좋은 점도 있는데 패키지명만 안다면 import구문을 따로 작성하지 않아도 저장 시 자동으로 만들어준다.

(움짤을 만들 수 있으면 움짤을 올렸을 텐데 아쉽)

개인적인 생각이지만 아마 go언어의 파일을 빌드할 때 최적화하기 위해서 이렇게 강제하는 건가?라고 생각된다.

 

import구문의 또 다른 매력? 이 있는데 여러 개를 한방에 선언할 수 있다는 거다.

import 여러개

만약 사용하지 않는 파일을 import 해야 할 때는 해당 파일 앞에 _(언더 바)를 명시하면 된다.

사용하지 않는 파일 import하는 방법

java와 go의 import의 또 다른 점은 경로에 있는 것 같다.

 

보통 java는 프로젝트를 기준으로 root를 잡는데 go는 go 설치 시 GOPATH라는 환경 변수에 설정한 곳으로 root를 잡는다는 점이다.

 

그럼 go언어는 import 해야 할 파일들을 전부 GOPATH의 위치에 넣어야 하냐? 그건 아니다 상대 경로를 사용해서 프로젝트를 기준으로 잡을 수 있다.

 

다음에 계속~

 

https://github.com/YunWonYong/Golang/tree/master/BasicGrammar/src/chapter2/

 

GitHub - YunWonYong/Golang

Contribute to YunWonYong/Golang development by creating an account on GitHub.

github.com

 

'Golang > Study' 카테고리의 다른 글

chapter3(2) primitive type - boolean and int  (0) 2022.01.23
chapter3(1) variable  (0) 2022.01.19
chapter2(3) go test  (0) 2022.01.18
chapter2(2)  (0) 2022.01.18
Golang 시작하기  (0) 2022.01.17