Go Syntax 기초 문법 정리

grl pwr·2022년 12월 23일
post-thumbnail

📌 New Module 만들기


go mod init 파일명 

코드를 작성하기 전에 최초로 위 명령어를 사용해 module을 만들어야 한다. 이렇게 하면 go.mod 파일이 만들어진다.


📌 Package 만들기


모든 go 코드는 package 안에 있어야 한다. 그래서 main.go라는 파일을 만들고 first statement를 아래처럼 설정한다.

package main

📌 Entry Point 만들기


go에서는 entry point를 선언해야 한다. 왜냐면 그렇지 않으면 고는 햇갈린다.

여기서 주의 할 점은 프로그램은 항상 한 개의 “main” function만 가질 수 있다. 왜냐 한 개의 entrypoint만 가질 수 있기 때문에.

package main

func main() {
}

📌 Always "" for strings


자바스크립트를 사용한 나로써는 이게 굉장히 신기했다. Go에서는 문자열(string)을 표현하려면 single quotation('')이 허용이 되지 않고 double quotation("")을 사용해야 한다.


📌 Built-in Packages


고에서는 빌트인 패키지라는 것이 있다. 그걸 선언/사용해줘야 에러가 나지 않는다. 예를들어, 아래와 같이 코드를 작성하면 에러가 난다. 왜일까?

package main

func main() {
	print("hey you")
}

고에서는 print와 같은 함수들이 빌트인 패키지 안에 있기 때문에 그 패키지를 반드시 import하고 사용해야 한다.

위와같이 Print 앞에 fmt를 적으면 자동으로 import가 된다(Auto Import 익스텐션을 설치했다는 가정하에). 고 프로그램은 패키지들로 구성되어 있다. 고의 standard library는 많은 코어 패키지를 보유하고 있고 fmt는 이 패키지들 중 하나이다.

여기서 중요한 사실은 print를 소문자로 적지 않고 Print라고 대문자로 적어야 한다. 왜냐면 패키지 안에 내장된 함수를 export해 다른 곳에서 사용하고 싶다면 앞에 대문자로 적어야 export가 가능하기 때문이다. 소문자로 적으면 아래와 같은 에러가 발생한다.

터미널에 아래 명령어를 사용하면 Print 내용이 잘 출력된다.

go run main.go

📌 선언한 변수는 반드시 사용


동적인 언어를 사용한 나에게 고는 매우 흥미로운 언어이다😁

go에서 변수를 선언하고 사용하지 않으면 노랑색 줄과 같은 에러가 뜬다. 그래서 개발자들이 사용 안하는 코드를 클린업 할 수 있게 도와준다.


📌 변수 사용하기


func main() {
	const conferenceName = "Go Conference"
	const conferenceTickets = 50
	var remainingTickets = 50

	fmt.Println("Welcome to", conferenceName, "booking application")
	fmt.Println("We currently have", conferenceTickets, "tickets and", remainingTickets, "are available for purchase")	
}

변수를 사용할 때, 위에 처럼 변수명을 fmt.Println()에 넣어 사용할 수 있다. 하지만 여기에서는 “ “와 콤마를 계속 붙여줘야 하는 단점이 있다.

이 점을 보완하기 위해서 아래처럼 fmt.Printf 라고 사용하면 변수를 보다 쉽게 사용할 수 있다.


func main() {
	const conferenceName = "Go Conference"
	const conferenceTickets = 50
	var remainingTickets = 50

	fmt.Printf("Welcome to %v booking application\n", conferenceName) // 1
	fmt.Println("We currently have", conferenceTickets, "tickets and", remainingTickets, "are available for purchase") // 2
}

1번 줄은 "%v"를 사용해 변수 placeholder를 만들어 준 예시이고
2번 줄은 조금은 불편한 변수명을 일일히 대입에 넣은 예시이다.



🎅 느낀점


  • 자바스크립트를 공부하다가 타입 언어인 go를 공부하니까 정말 재밌다. Python 배우다가 C++로 알고리즘 풀었을 때 느낌이랑 비슷하다. 나는 타입 지정 언어랑 잘 맞는 것 같다 😜

  • 공부한 내용을 블로그에 정리하는 것이 꽤나 시간이 걸리는 작업이다. 배운 내용 모두 정리하다가는 실습보다 정리하는 시간이 더 걸릴거 같다. 적당히 정리하고 실습에 초점을 두어야겠다.


모두 해피 메리 크리스마스! 🤶🎄💖


[References]

사진:

글:

profile
4대륙 개발자

0개의 댓글