본문 바로가기
인턴/준비

Go Language #1

by 사향낭 2022. 12. 16.

It's time to GO!

 

Write in GO~ / 진한 너디 감성

 

 

 

다운로드는 여기서

 

 

The Go Programming Language

DevOps & Site Reliability With fast build times, lean syntax, an automatic formatter and doc generator, Go is built to support both DevOps and SRE.

go.dev

 

 

 

editor로 vs code를 사용하는데 환경변수 등을 따로 설정해줄 필요 없이 vs code에 go 파일을 생성해서 시키는대로 설치 및 설정해주면 된다. (갓갓 vs code)

 

 

Go with Visual Studio Code

Learn about Visual Studio Code editor features (code completion, debugging, snippets, linting) for Go.

code.visualstudio.com

 

 

 

어떤 자료로 공부할지 고민하다 노마드 코더님의 강의를 보고 있다.

 

 

쉽고 빠른 Go 시작하기 – 노마드 코더 Nomad Coders

Learn Go Fast

nomadcoders.co

 

 

공식 문서가 그리 이쁘진 않은데 코드를 실행해보면서 Go를 익힐 수 있는 A Tour of Go 페이지를 제공한다.

 

 

A Tour of Go

 

go.dev

 

 

 

강박적으로 효율을 따지는 냄새가 스물스물 난다.

 

unused variable이 있으면 error가 난다니,,, python에서 보통 for loop를 돌때 쓰지 않는 변수를 underscore(_)로 처리해주곤 하는데 Go에서는 쓰지 않는 변수는 무조건 underscore로 처리해주어야 한다.

 

 

 

#0, #1 (22.12.16)

 

 

#2 (22.12.18) 

 

Go에도 pointer가 있다. C에서는 어떤 type의 변수와 어떤 type의 pointer 변수에 대해 method 같은 것을 부를 때 notation이 다른데 (. / ->) Go lang에서는 이를 통합하였다. (just using .)

 

pointer receiver라는 것으로 method를 function으로 구현한다. (methods are functions)

 

error를 try & catch 가 아닌 변수로 처리하는 부분도 흥미롭다.

 

python의 __str__같은 method를 String 이라는 이름의 function으로 만들 수 있다.

 

 

#3 (22.12.19)

 

Go routine은 main이 살아있을 때만 돌아간다.

 

Channel로 Goroutine으로부터의 message를 받을 수 있다. 전달하면 바로 받음.

 

Channel로 message를 받는 것은 blocking operation 이다.

 

Multithreading을 이렇게 간편하게 할 수 있다는게 Go lang의 가장 큰 장점인듯.

'인턴 > 준비' 카테고리의 다른 글

Git #2 Basics  (1) 2022.12.29
Git #1 Origins story and terms  (0) 2022.12.27
속성 SQL  (0) 2022.02.28
I2C & SPI  (0) 2022.02.07
[project] simpleAtmController  (0) 2022.01.12

댓글