Golang 고언어 25개 키워드 정리 - MIRYANG.DEV

 
go언어는 25개의 키워드가 있으며 여기 에서 확인할 수 있다.
break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var

var

변수 선언
func main() { var x int println(x) x = 2 println(x) var a, b, c int = 1, 2, 3 println(a, b, c) } //OUTPUT 0 2 1 2 3
https://play.golang.org/p/5BLk3mH-U4S

const

상수 선언
func main() { const x int = 1 println(x) const ( a = 2 b = 3 c = 4 ) println(a + b + c) } //OUTPUT 1 9
https://play.golang.org/p/33pedQdF2-E

for

반복문으로 Go언어에는 반복문은 for 하나
func main() { sum := 0 for i := 1; i <= 10; i++ { sum += i } println("sum :", sum) i, sum2 := 0, 0 for i < 10 { i++ sum2 += i } println("sum2 :", sum2) } //OUTPUT sum : 55 sum2 : 55
https://play.golang.org/p/_Np9gv_uH9U

range

컬렉션에서 각 요소의 인덱스와 값을 반환
func main() { numbers := []int{1, 2, 3} for index, num := range numbers { println(index, num) } } //OUTPUT 0 1 1 2 2 3
https://play.golang.org/p/bvH0Q-tgWZq

break

for, switch, select 에서 빠져나올 때 사용
func main() { i := 0 for i < 10 { i++ if i == 5 { break } } println("i :", i) } //OUTPUT i : 5
https://play.golang.org/p/ZHpbEMD8eqb

continue

for 루프 시작 부분으로 이동
func main() { i := 0 for i < 5 { i++ if i == 3 { continue } println("i :", i) } } //OUTPUT i : 1 i : 2 i : 4 i : 5
https://play.golang.org/p/74uu_8HxfPB

switch

여러 값을 비교하는 조건문 표현
func main() { num := 5 switch { case num == 10: println("num is 10") case num == 8: println("num is 8") case num == 5: println("num is 5") default: println("num is less than 5") } } //OUTPUT num is 5
https://play.golang.org/p/B_nc5YUupO7

case

조건문을 작성
func main() { num := 1 switch num{ case 1, 2: println("num is 1 or 2") case 3, 4: println("num is 3 or 4") default: println("num is more than 5") } } //OUTPUT num is 1 or 2
https://play.golang.org/p/c-O9CtaGqlM

default

모든 case에 부합하지 않을 때 실행
func main() { num := 3 switch { case num == 10: println("num is 10") case num == 8: println("num is 8") case num == 5: println("num is 5") default: println("num is less than 5") } } //OUTPUT num is less than 5
https://play.golang.org/p/QRZxKDV45Fr

fallthrough

case를 만족해도 아래의 case 들을 실행하기 위해 fallthrough 를 사용
  • go 컴파일러가 자동으로 break 문을 각 case문 블럭 마지막에 추가하므로, 조건문이 해당하는 경우 해당 case에서 switch 문이 종료된다.
func main() { num := 1 switch { case num < 10: println("num is less than 10") fallthrough case num < 8: println("num is less than 8") fallthrough default: println("num is less than 5") } } //OUTPUT num is less than 10 num is less than 8 num is less than 5
https://play.golang.org/p/7S9cz3r34vo

if

조건이 맞으면 실행
func main() { a := 1 if a == 0 { println("a is 0") } println("a is", a) } //OUTPUT a is 1
https://play.golang.org/p/WgZW1uS4xrp
if 조건식이 모두 거짓일 때 실행
func main() { a := 1 if a == 0 { println("a is 0") } else if a == 2 { println("a is 2") } else { println("a is 1") } } //OUTPUT a is 1
https://play.golang.org/p/nMmsymTJpVf

func

함수 선언
func main() { sum(5, 10) } func sum(a int, b int) { println("sum :", a+b) }
https://play.golang.org/p/-w5wVi_R_ep

return

값을 반환
func main() { println(sum(5, 10)) println(multiply(5, 10)) } func sum(a int, b int) (sum int) { sum = a + b return } func multiply(a int, b int) int { return a * b } //OUTPUT 15 50
https://play.golang.org/p/EuENr4nHhq1

defer

함수 내에서 제일 마지막에 실행
func main() { defer println("last") println("first") } //OUTPUT first last

package

코드의 모듈화, 코드의 재사용 가능
  • main 패키지 : 실행 프로그램
  • 그 외 패키지 : 공유 패키지(라이브러리)

import

다른 패키지를 사용하기 위해 포함시킬 것을 선언
import "fmt" func main() { fmt.Println("fmt package") } //OUTPUT fmt package
https://play.golang.org/p/X_K9NVQaAjP

type

새로운 타입 정의

struct

변수를 묶어서 새로운 자료형 정의 (Custom Data Type)
type hotel struct { name string price int } func main() { var h1 = hotel{} h1.name = "abc" h1.price = 5000 h2 := hotel{name: "cde", price: 1000} fmt.Println(h1, h2) } //OUTPUT {abc 5000} {cde 1000}
https://play.golang.org/p/7szHDOKUUcx

interface

메소드들의 집합체
type reserve interface { twoday() int } type hotel struct { name string price int } type airbnb struct { name string price int coupon int } func (h hotel) twoday() int { return h.price * 2 } func (a airbnb) twoday() int { return a.price*2 - a.coupon } func main() { a := hotel{"aaa", 1000} b := airbnb{"bbb", 1000, 500} makeReserve(a, b) } func makeReserve(r ...reserve) { for _, v := range r { fmt.Println(v.twoday()) } } //OUTPUT 2000 1500
https://play.golang.org/p/DHvzljGxpsQ

map

해시테이블을 구현한 자료구조
func main() { m := map[string]int{ "one": 1, "two": 2, } m["five"] = 5 for k, v := range m { println(k, v) } } //OUTPUT one 1 two 2 five 5
https://play.golang.org/p/qJXZPAV7kj8

go

go 키워드로 함수를 호출하면, goroutine 실행
func main() { go num(1) go num(2) go num(3) time.Sleep(time.Second * 3) } func num(n int) { println(n) } //OUTPUT 3 1 2
https://play.golang.org/p/Uimk2yogTOC

chan

채널 선언
  • 채널 : 값을 주고 받는 통로
func main() { ch := make(chan int) go func() { ch <- 1 }() num := <-ch println(num) } //OUTPUT 1

select

다중 채널에서 대기 후 값 수신하면 실행

goto

특정 레이블로 이동
func main() { num := 1 if num == 1 { goto ONE } else { goto OTHER } ONE: println("num is 1") goto END OTHER: println("num is not 1") END: //OUTPUT num is 1 }
https://play.golang.org/p/xwAvtBmJJXp
  • Refer
    • http://golang.site/
    • https://golang.org/