안녕하세요. 개발자 모도리입니다.
The Go Programming Language 라는 책으로 Go를 공부하고 있으며, 해당 책의 내용을 요약 정리해서 올리려고 합니다. 저는 번역본을 구매해서 공부하고 있습니다.
switch coinflip() {
case "heads":
heads++
case "tails":
tails++
default:
fmt.Println("landed on edge!")
}
- coinflip 호출의 결과는 각각의 케이스 값과 비교됩니다.
- 케이스는 위에서 아래로 평가되기 때문에 처음 일치하는 것이 실행됩니다.
- default 케이스는 다른 케이스 중 어느 하나도 일치하지 않을 때 적용되며, 어느 위치에 있어도 됩니다.
- C 언어와 같이 다음 구문까지 실행되지 않습니다. (케이스 실행 문 마지막에
break를 넣지 않아도 됩니다.)
func Signum(x int) int {
switch {
case x > 0:
return +1
default:
return 0
case x < 0:
return -1
}
}
- switch는 for, if문에서 처럼 부가적으로 짧은 변수 선언, 증가 또는 할당 구문, 함수 호출 등의 간단한 구문을 비롯해 테스트 전에 값을 설정할 수 있습니다.
type Point struct {
X, Y int
}
var p Point
- 구조체 타입의 이름은 보통 길기 때문에 대부분 이름을 붙여 사용합니다.
- C 언어의
typedef와 같은 역할을 합니다.
& 연산자는 변수의 주소를 산출하고, * 연산자는 포인터가 참조하는 변수의 값을 산출하지만 포인터의 산술 연산은 제공하지 않습니다.$ go doc http.ListenAndServe
package http // import "net/http"func ListenAndServe(addr string, handler Handler) error
ListenAndServe listens on the TCP network address addr and then calls Serve
with handler to handle requests on incoming connections. Accepted
connections are configured to enable TCP keep-alives.The handler is typically nil, in which case the DefaultServeMux is used.
ListenAndServe always returns a non-nil error.
///* ... */이어보기