본문 바로가기

GO

(4)
[Go] A Tour of Go - Basics (Function, Method and Interface) Function 함수는 여러 문장을 묶어서 실행하는 코드 블럭의 단위이다. Go에서 함수는 func 키워드를 사용하여 정의한다. func 뒤에 함수명을 적고 괄호 ( ) 안에 그 함수에 전달하는 파라미터들을 적게 된다. 각 파라미터는 파라미터명 뒤에 int, string 등의 파라미터 타입을 적어서 정의한다. 함수의 리턴 타입은 파라미터 괄호 ( ) 뒤에 적게 되는데, 이는 C와 같은 다른 언어에서 리턴 타입을 함수명 앞에 쓰는 것과 대조적이다. 함수는 패키지 안에 정의되며 호출되는 함수가 호출하는 함수의 반드시 앞에 위치해야 할 필요는 없다. package main func main() { msg := "Hello" say(msg) } func say(msg string) { println(msg) }..
[Go] A Tour of Go - Basics (More types: structs, slices, and maps) var idMap map[int]string Pointer (포인터) 포인터는 변수나 데이터 구조의 메모리 주소를 저장하는 변수. 일반적으로 변수는 값을 저장하는데 사용되지만, 포인터 변수는 값 자체를 저장하는 게 아니라, 메모리 주소를 저장하여 해당 메모리 위치에 접근하고 조작할 수 있게 함. 즉, 포인터 변수는 다른 변수의 메모리 주소를 가리키고 그 변수의 값을 간접적으로 참조하거나 변경할 수 있게 해줌. * 타입 은 타입 값을 가리키는 포인터 변수를 만들 수 잇음 아래 선언만 했을 땐 nil 값을 가짐 var p *int & 연산자도 포인터 변수로 만들 수 있음 왜냐? 해당 변수의 메모리 주소를 넣어줄 수 있기 떄문! package main import "fmt" func main() { i, j ..
[Go] A Tour of Go - Basics (Flow Control Statements: for, if, else, switch and defer) Flow Control Statements : for, if, else, switch and defer "missing return" error Go 언어에서 "missing return" 오류는 함수의 모든 코드 경로에서 값을 반환하지 않을 때 발생한다. Go 언어에서는 모든 코드 경로에서 값을 반환하도록 강제하고 있다. 따라서 아래와 같은 코드의 경우, if x > 0 구문 이후에 반환문이 없으므로, x > 0인 경우 어떤 값을 반환할지 명시되어 있지 않아서 에러가 일어난다. package main import ( "fmt" ) func sqrt(x float64) string { if x 0 { return "hello" } } fu..
[Go] A Tour of Go - Basics (Packages, variables, and functions) A Tour of Go https://go.dev/tour/welcome/1 A Tour of Go go.dev 다음주 수요일까지 이 튜토리얼을 쭉 따라가면서 코드를 따라 쳐보면서 개념을 익혀보기로 했다. 강의를 듣는 것도 좋지만, 강의는 이 튜토리얼을 한 번 쭉 해보고 듣는 것도 나쁘지 않을 것 같다. 일단.. 좀 많이 코드를 쳐보면서 쭉쭉 진도를 빼야 할 것 같다. 오늘 정리하는 부분은 Basics의 Packages, variables, and functions 부분이다. 헷갈리거나 잘 몰랐던 부분만 정리해보도록 하겠다. Package Golang에서 패키지는 코드를 묶는 기본 단위이다. 따라서 모든 코드는 반드시 패키지로 묶어야 한다. 또한 Golang으로 프로그램을 작성한다면, 반드시 main 패..