Golang { Syntax int := 8 }

Golang Syntax _8 28. 고루틴 package main import ( “fmt” “time” ) func say(s string) { for i := 0; i < 5; i++ { time.Sleep(1 * time.Millisecond) fmt.Println(s) } } func main() { go say(“world”) say(“hello”) } /**** Output **** hello world world hello world hello hello world hello ****************/ Goroutines은 런타임중에 관리되는 경략 …

Golang { Syntax int := 7 }

Golang Syntax _7 24. 웹서버 package main import ( “fmt” “net/http” ) type Hello struct{} func (h Hello) ServeHTTP( w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, “Hello!”) } func main() { var h Hello http.ListenAndServe(“localhost:4000”, h) } Package http는 http.handler를 구현한 어떠한 값을 사용해 HTTP 요청을 제공한다. Handler는 다음과 같은 인터페이스를 가진다. package http type Handler …

Golang { Syntax int := 6 }

Golang Syntax _6 21. 메소드 package main import ( “fmt” “math” ) type Vertex struct { X, Y float64 } func (v *Vertex) Abs() float64 { return math.Sqrt(v.X*v.X + v.Y*v.Y) } func main() { v := &Vertex{3, 4} fmt.Println(v.Abs()) } Go에는 클래스가 없지만 메소드를 구조체(struct)에 붙일 수 있다. 메소드 리시버(method receiver) 는 func 키워드와 메소드 이름 …

Golang { Syntax int := 5 }

Golang Syntax _5 19. 스위치 package main import ( “fmt” “time” ) func main() { fmt.Println(“When’s Saturday?”) today := time.Now().Weekday() switch time.Saturday { case today + 0: fmt.Println(“Today.”) case today + 1: fmt.Println(“Tomorrow.”) case today + 2: fmt.Println(“In two days.”) default: fmt.Println(“Too far away.”) } } Go의 Switch는 break문을 통해 빠져나오지 않고 조건이 일치하는 case문을 …

Golang { Syntax int := 4 }

Golang Syntax _4 15. 맵 (Maps) package main import “fmt” type Vertex struct { Lat, Long float64 } var m = map[string]Vertex{ “Bell Labs”: Vertex{ 40.68433, -74.39967, }, “Google”: { 37.42202, -122.08408, }, } func main() { fmt.Println(t, m) // map[Bell Labs:{40.68433 -74.39967} Google:{37.42202 -122.08408}] }  Go에서 맵은 값에 key를 지정한다. 맵은  반드시 사용하기 전에  …

Golang { Syntax int := 3 }

Golang Syntax _3 8. 기본 자료형 Go에 존재하는 자료형 bool : true 혹은 false를 나타내는 부울 타입이다. string : 문자열 int [ int8, int16, int32, int64 ] uint [ uint8, uint16, uint32, uint64 ] rune [ int32의 alias이다. ] : 대개 유니코드 코드 포인트 값을 표현하는데 사용된다. float32, float64 complex64, complex128 + Go에선 Type casting을 위해선 uint8(10)과 같이 castring …

Golang { Syntax int := 2 }

Golang Syntax _2 5. 반복문 package main import “fmt” func main() { sum := 0 for i := 0; i < 10; i++ { sum += i } fmt.Println(sum) } Go에선 반복엔 for만이 존재하며 while 은 사용하지 않는다. for 반복문은 C와 유사하지만 소괄호는 사용하지 않는다. 하지만 실행문을 위해선 중괄호가 필요하다. for sum < 2000 { …