chapter2는 프로그램의 구성과 실행이다.
본인은 개인적으로 java를 좋아하기 때문에 java와 Go를 비교하는 식으로 진행할 것 같다.
Golang의 코드 구조를 보면
위 이미지는 가장 기본적인 구성이다.
java와 엄청 다른 부분은 ; (세미클론)으로 문자의 끝을 알리지 않아도 컴파일 시점에서 , (콤마)와 } (중괄호)을 기준으로 문장의 끝을 알 수 있다고 한다.
package는 한 파일에 한 개만 사용할 수 있고
import는 필수는 아니다.
거의 모든 프로그래밍 언어는 main함수를 통해 프로그램의 시작점(Entry Point)을 지정한다.
함수를 선언할 때 필요한 예약어는 func(function의 약자)이다.
go와 java를 기준으로 조금 독특한 부분이 있는데 import 예약어에 사용하지 않은 모듈을 명시하고 실행하면 오류가 난다는 점이다.
java는 실행 시 오류 없이 실행되지만 IDE를 사용한다면 경고표시로 해당 import구문에 주황색 물결선이 표시된다.
반대로 go는 vscode에서 코딩하는데 플러그인인 Go는 사용하지 않는 파일이 import 구문에 존재하면 에러를 표시하고 저장 시 그냥 없애버린다....
반대로 좋은 점도 있는데 패키지명만 안다면 import구문을 따로 작성하지 않아도 저장 시 자동으로 만들어준다.
(움짤을 만들 수 있으면 움짤을 올렸을 텐데 아쉽)
개인적인 생각이지만 아마 go언어의 파일을 빌드할 때 최적화하기 위해서 이렇게 강제하는 건가?라고 생각된다.
import구문의 또 다른 매력? 이 있는데 여러 개를 한방에 선언할 수 있다는 거다.
만약 사용하지 않는 파일을 import 해야 할 때는 해당 파일 앞에 _(언더 바)를 명시하면 된다.
java와 go의 import의 또 다른 점은 경로에 있는 것 같다.
보통 java는 프로젝트를 기준으로 root를 잡는데 go는 go 설치 시 GOPATH라는 환경 변수에 설정한 곳으로 root를 잡는다는 점이다.
그럼 go언어는 import 해야 할 파일들을 전부 GOPATH의 위치에 넣어야 하냐? 그건 아니다 상대 경로를 사용해서 프로젝트를 기준으로 잡을 수 있다.
다음에 계속~
https://github.com/YunWonYong/Golang/tree/master/BasicGrammar/src/chapter2/
'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 |