[Go] 설치 및 기본 사용 방법Language2022. 9. 28. 21:03
Table of Contents
반응형
서론
노마드 코더 에서 무료인 쉽고 빠른 Go 시작하기 강의 내용을 코딩하며 정리하였습니다.
시작
https://go.dev/ 페이지에서 Go를 다운로드합니다. 다운로드 완료 시 설치파일을 실행하여 설치합니다. 그리고 폴더를 아래와 같이 생성합니다.
- mkdir github.com/hgko1207
- cd github.com/hgko1207
- mkdir learngo
- cd learngo
- go mod init github.com/hgko1207/learngo
코딩
- main.go 는 컴파일을 위한 파일
- export 함수를 만들 경우 함수명 맨 앞에 대문자로 작성
- function -> func
- null -> nil
상수와 변수
// Constants
const name string = "hgko"
// Variables
func main() {
var name string = "hgko"
// 변수를 아래와 같이 축약형으로 사용 가능
// 축약형은 함수 안에서만 동작
name := "hgko"
}
For 문
people := [2]string{"hgko", "haeun"}
for _, person := range people {
fmt.Println(person);
}
함수
// naked return
func lenAndUpper(name string) (length int, uppercase string) {
// 'derfer' function이 끝난 후에 실행되는 코드
defer fmt.Println("I'm done")
length = len(name)
uppercase = strings.ToUpper(name)
return
}
// Go가 내부적으로 호출하는 method를 사용하는 방법
func (a Account) String() string {
return fmt.Sprint(a.Owner(), "'s account.\nHas: ", a.Balance())
}
배열 선언
func main() {
data := [2]string{"test1", "test2"}
}
Map 사용
// empty map을 초기화하고 싶을때
// map 끝에 중괄호({})를 작성하여 초기화 해야 함
var results = map[string]string{}
// 또는 make 사용
var results = make(map[string]string)
results["hello"] = "Hello"
Goroutines
- Goroutines이란 기본적으로 다른 함수와 동시에 실행시키는 함수입니다.
- Goroutines는 프로그램이 작동하는 동안(메인함수가 실행하는 동안)만 유효합니다.
// 함수 앞에 go를 붙입니다.
func main() {
go count()
count()
}
func count() {
for i := 0; i < 10; i++ {
fmt.Println(i)
time.Sleep(time.Second)
}
}
// 이 경우는 main함수가 바로 종료되기 때문에 동작하지 않습니다.
func main() {
go count()
go count()
}
Channels
- Channel은 Goroutines이랑 메인함수 사이에 정보를 전달하기 위한 방법입니다.
- 채널로부터 뭔가를 받을 때 메인 함수가 어떤 결과가 올 때까지 기다립니다.
- 채널의 타입은 chan 입니다.
- 채널은 데이터를 받을 순 없고 보낼 수만 있도록 작성할 수 있습니다.(send-only)
func main() {
c := make(chan bool)
go channelTest(c)
result := <- c
fmt.Println(result)
}
func channelTest(c chan bool) {
time.Sleep(time.Second * 5)
c <- true
}
// send-only
func sendOnlyTest(c chan<- bool) {
c <- true
}
Error
- errors.New()를 사용하여 에러를 정의하고 호출합니다.
var err = errors.New("error content")
func main() {
fmt.PrintLn(errTest())
}
func errTest() error {
return err
}
goquery
HTML을 navigate 하고 필요한 걸 HTML에서 찾아내기 위해서 사용 JQuery와 유사한 go를 위한 라이브러리입니다.
$ go get github.com/PuerkitoBio/goquery
참고
- go lang std library
- https://golang.org/
반응형
@고지니어스 :: 규니의 개발 블로그
IT 기술과 개발 내용을 포스팅하는 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!