본문으로 바로가기

글에 앞서

Go 기초문법을 바탕으로 이후 간단한 toy project까지 포스팅하는 것을 목표로 하고 있습니다.

 

아래 사이트에서 '쉽고 빠른 Go 시작하기' 강좌와 '디스커버리 Go'를 통해 학습한 내용을 포스팅할 예정입니다.

추후에 기본 알고리즘 문제도 Go랭으로 작성하여 풀이할 예정이니 많이 기대해주세요!

https://nomadcoders.co/

 

Nomad Coders

코딩은 진짜를 만들어보는거야!. 실제 구현되어 있는 서비스를 한땀 한땀 따라 만들면서 코딩을 배우세요.

nomadcoders.co

Nomad Coders 강의 썸네일

이번 글 목차


1. Go Lang 특징

2. Main.go는?

3. 상수와 변수

 

 

 

 

Go언어 특징?


1. Go Lang 특징

1) 범용 프로그래밍 언어로 깔끔하고 간결하게 생산성 높은 프로그래밍이 가능하다.

2) 정적 자료형 언어지만 동적 자료형 언어로 작성하는 듯한 느낌을 준다.

3) 작성한 코드를 빠르게 컴파일하고 가비지 컬렉터를 지원한다.

- 메모리 관리에 대한 부담을 덜 수 있다.

4) 동시성을 지원하는 코드 작성이 쉽다.

- 채널을 이용

 

 

Main.go는?


1. 개요

1) 컴파일하고 싶다면 main 패키지에 있는 main 함수가 프로그램의 시작점이 된다. (아래와 같은 모양으로 생성된다.)

package main

import "fmt"

func main() {
	fmt.Println("Hello, World!")
}

 

- 컴파일러는 패키지 이름이 main인 것부터 찾는다. 즉 main package가 진입점(entry point)이 되며 main package에서 main function 순으로 찾게 된다.

 

2. 주의사항

1) 아래와 같은 코드로 컴파일하면 오류가 발생한다.

package main

import "fmt"

func main()
{
	fmt.Println("Hello, World!")
}

위와 같이 "./main.go : missing function body / syntax error :  unexpected semicolon or newline before {" 에러를 볼 수 있습니다.

 

이유는 Go 컴파일러는 세미콜론으로 구분된 코드를 해석하므로, 구문 분석기가 소스 코드를 스캔하는 과정에서 세미콜론을 자동으로 붙여 컴파일러에게 전달하기 때문입니다.

쉼표나 연산자, 여는 괄호 등으로 끝이 나면 세미콜론을 붙이지 않는 단순한 규칙만이 적용되므로 조심하셔야 됩니다.

 

 

상수와 변수


1. 자료형 및 변수

1) 정적 자료형을 지원하는 언어입니다. (= Go언어는 Type언어이다.)

2) 자료형 추론 기능이 있습니다. 당연히 정적 자료형을 지원하므로 해당 변수에 다른 자료형의 값을 담을 수는 없습니다.

var name string = "brenden"
name := "brenden"

위 두 줄은 같은 코드라고 보시면 됩니다. 다만 위의 자료형 추론 기능 예시 코드라고 보시면 됩니다.

다만 후자인 'name := "brenden"'의 경우 function안에서만 사용 가능하며, 축약형이 존재하면 go가 첫번째 값을 기준으로 type을 정해줍니다. (function 밖에 쓰게 되면 축약형은 사용하지 못합니다.)

 

 

다양한 예시를 통해서 상수와 변수에 대해서 익숙해지시길 바랍니다.

왼쪽에 변수 이름을 쓰고, 변수의 자료형을 오른쪽에 설명한다고 보시면 됩니다.

var x int
var arr [5]int

var y = 10
var z = &x

func(x int, y int)
func(x, y int)
func(int) int
func(int, func(int, int)) func(int) int

 

다른 언어를 접하셨던 분들에게는 기본정도 되는 내용이실텐데 이처럼 간단하게 정리해서 전달해 드릴게요!


댓글을 달아 주세요