Golang 10

Golang debug console 문제

Golang으로 api 만들기 실습 진행중 디버그 콘솔창에 문제가 생김 코드는 아래와 같다. package main import ( "fmt" "net/http" ) type fooHandler struct{} func (f *fooHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "Hello Foo!") } func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "Hello World") }) http.HandleFunc("/bar", func(w http.ResponseWriter, r *http.Req..

Golang 2021.12.16

Arrays & Slices

array의 기본형식은 아래와 같다. package main import "fmt" func main() { names := [5]string{"jay", "paul", "david"} fmt.Println(names) } // [jay paul david] slice는 기본적으로 Array인데 length가 없다. 즉 length없이 이용하는 것이다. package main import "fmt" func main() { names := []string{"jay", "paul", "david"} fmt.Println(names) } // [jay paul david] 그리고 slice에 item을 추가하기 위해 사용하는 것이 있는데 append()라 불리는 function이다. append()는 2개의..

Golang 2021.12.12

Pointers

Go는 높은 수준의 코드로 Low-level Programming을 하도록 해준다고 한다. 여기서는 간단하게 &와 *를 살펴보자. 하기전에 아래 코드를 보면 10과 2가 출력된다. package main import "fmt" func main() { a := 2 b := a a = 10 fmt.Println(a, b) } // 10 2 &을 추가하면 메모리 주소를 볼 수가 있다. a는 메모리 주소가 12088인 곳에 있고 b는 메모리 주소가 120a0인 곳에 있다고 볼 수 있다. package main import "fmt" func main() { a := 2 b := 5 fmt.Println(&a, &b) } // 0xc000012088 0xc0000120a0 이제는 b가 a의 메모리를 살펴보고 있..

Golang 2021.12.12

if & switch

이번에는 간단하게만 살펴보자. if문을 보자. if문을 보면 go에서는 조건을 보기전에 변수를 집어넣을 수 있다. 아래는 korean이라는 변수를 넣어서 해보았다. 즉 if 부분만을 위해서 변수를 생성할 수 있다. package main import "fmt" func canIDrink(age int) bool { if koreanAge := age + 2; koreanAge < 18 { return false } return true } func main() { fmt.Println(canIDrink(16)) } // true go에서의 switch문은 아래와 같은데 괄호 치는걸 제외하면 JavaScript랑도 비슷하다. package main import "fmt" func canIDrink(age ..

Golang 2021.12.12

for&range&args

go에는 JS처럼 for of / for in / map 등등이 필요없고 for 하나로 기능을 다한다. for로 간단한 기능을 구현해 보자. range도 이용해서 array에 loop를 적용할 수 있도록 해준다. package main import ( "fmt" ) func superAdd(numbers ...int) int { fmt.Println(numbers) return 1 } func main() { superAdd(1, 2, 3, 4, 5, 6) } // [1 2 3 4 5 6] array에서 반복이 일어나도록 해보자. 조건에 따라서 반복 실행을 하도록 아래 코드를 짠다. 보면 range는 index를 주기 때문에 0 1 2 3 4 5로 나오게 된다. package main import ( "..

Golang 2021.12.12

Functions (2)

go 공부를 할 때 아래코드와 같이 int와 string을 return 한다고 코드를 작성했었다. package main import ( "fmt" "strings" ) func lenAndUpper(name string) (int, string) { return len(name), strings.ToUpper(name) } func main() { totalLength, upperName := lenAndUpper("jay") fmt.Println(totalLength, upperName) } // 3 JAY naked return이라고 return 할 변수들을 굳이 꼭 명시하지 않아도 되는데 length, uppercase를 return할 필요가 없는 것이다. package main import ( ..

Golang 2021.12.11

Functions (1)

Go에는 많은 Type들이 있다. 여기를 참고해보자. 곱셈 함수를 만들어보자. typescript에서 argument에 각각의 type을 설정해주듯이 go에서도 type을 설정해 주어야 한다. // 아래 각각의 argument에다가 Type을 설정해주자. package main import "fmt" func multiply(a , b ) { return a * b } func main() { fmt.Println(multiply(2, 2)) } package main import "fmt" func multiply(a, b int) { return a * b // 이렇게 하게 된다면 no result values expectedcompiler라고 뜨게 된다. } func main() { fmt.Prin..

Golang 2021.12.11

go: cannot find main module error

vscode에서 golang 자동완성이 안될 때 여기 tistory를 참고를 했다. go: cannot find main module, but found .git/config in C:\Users\kjh to create a module there, run: cd ..\..\.. && go mod init settings.json을 아래와 같이 설정을 해주었다. 이후에 에러가 뜬다,, go: cannot find main module, but found .git/config in C:\Users\kjh to create a module there, run: cd ..\..\.. && go mod init F1키 - settings.json을 들어가서 위에 설정을 다시해주니까 맨우측 하단에 Install이..

Golang 2021.12.11