일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- gradle
- codewars
- 파이썬
- scala
- 튜토리얼
- 프로그래머스
- HBase
- Linux
- redis
- Python
- go
- golang
- programmers
- OOM
- dynamic programming
- 자바
- 스칼라
- 주키퍼
- DP
- boj
- Go언어
- 동적프로그래밍
- docker
- zookeeper
- 알고리즘
- leetcode
- 코드워
- 문제풀이
- Java
- 리눅스
- Today
- Total
목록golang (8)
파이문
Go 에는 testing을 할 때는 각 파일 명 뒤에 _test 를 붙여주면 (개인적으로 테스트 디렉토리를 따로 만들어 작성하는게 아니라, 각 파일이 위치하는 곳에 네이밍만 바뀌어 testing 한다는 것이 그닥 맘에 들지는 않으나) 손쉽게 작성할 수 있다. 참고로 go 의 testing 은 공식적으로 setUp과 tearDown 을 지원하지 않고 TestMain 을 이용해 해당 패키지의 main 을 작성하던가, 테스트 함수 리스트를 만들어서 돌리던가 하는 형식으로 하더라. 일단 레퍼런스들만 나열하고 나중에 예제를 정리해봐야겠다. Go 의 builtin 인 testing https://stackoverflow.com/questions/23729790/how-can-i-do-test-setup-using..
Go에서 언더스코어(underscore)의 의미 파이썬에서 언더스코어가 사용하지 않을 변수를 의미하는 것 처럼 Go역시 같다. 다만 파이썬에선 강제가 아니지만. Go는 사용하지 않은 변수, 패키지 등에 대해선 런타임시 에러를 뱉기 때문에, 만약 그러한 변수, 패키지가 있다면 언더스코어로 지정해야 한다. 패키지는 별칭으로 지으면 된다.
Go 슬라이스, 배열 Go에서 슬라이스는 레퍼런스이고 배열은 복사이다. 그러므로 슬라이스를 복사하고 싶을 땐 대입이 아니라 copy 모듈을 사용해야 한다.
Go에서 가변인자 사용하기Go에서 가변인자를 사용하려면 ...을 사용하면 된다.func sum(n ...int) int { total := 0 for _, value := range n { total += value } return total } func main() { r := sum(1, 2, 3, 4, 5) fmt.Print(r) } 가변인자는 슬라이스 타입이다.
Go 배열(Golang array) 모든 배열은 연속된 메모리 주소로 되어 있습니다. Go 역시 마찬가지 입니다.Go에서 배열을 정의하려면, 요소의 타입과 요소의 개수를 명시해야 합니다. var variable_name [SIZE] variable_type 배열의 크기는 반드시 integer이며, 0보다 커야 합니다. 타입은 Go에서 가능한 어떤 타입도 올 수 있습니다. 예를 들어서 10개의 요소를 갖는 float32 타입의 배열을 정의하고자 한다면 아래 처럼 할 수 있습니다. var balance [10] float32 초기화 시 여러개의 값을 임의로 넣고자 한다면 중괄호 안에 값을 채우면 됩니다. 또한 특정 위치에 다른 값을 설정하고 싶다면 다른 언어처럼 index 값으로 접근하여 값을 대입하면 됩니..
Go switch 문(Go switch example) Go switch 문은 break를 사용하지 않습니다. (저는 파이썬 밖에 하지 않아서 switch 문에 대해서 잘 몰랐는데요. 알고보니 java에서는 매 케이스마다 break를 해주어야 하더군요.) i := 2 fmt.Print("Write ", i, " as ") switch i { case 1: fmt.Println("one") case 2: fmt.Println("two") case 3: fmt.Println("three") }물론 break를 명시하여도 에러가 나진 않습니다 Go에는 다른 언어와는 다른 생소한 키워드 fallthrough가 있는데요. 자바의 경우 break 문을 실행하지 않으면 모든 케이스에 대하여 검사합니다. 하지만 앞서 ..
Go 반복문(Go for loop example) Go 언어에는 반복문이 for 문 밖에 없습니다. for 반복문은 다른 언어와 비슷한 문법을 갖고 있고, 소괄호는 없고 중괄호는 필수라는 점만이 다릅니다.package main import "fmt" func main() { sum := 0 for i := 0; i < 10; i++ { sum += i } fmt.Println(sum) } 무한 루프인 경우 for 반복문 안을 비워두고 사용하면 됩니다.for { } C언어에서 while문을 사용하는 것 처럼 구현할 수도 있습니다.sum = 1 for sum < 1000 { sum += sum } Go 조건문(Go if statement example) for 문과 비슷하게 소괄호는 필요 없고, 중괄호는 반..
Go 변수(Go variable) Go 에서는 변수를 지정할 때 var 변수명 리턴형 순으로 선언합니다. 열거 되는 변수명이 같은 타입이면 리턴형을 하나만 써줄 수도 있습니다. 바로 아래처럼 말이죠.var x, y, z int = 3, 2, 1 초기화를 하는 경우 값을 생략할 수도 있습니다. 리턴형을 생략하더라도 Go는 초기화 하고자 하는 타입에 따라 값을 지정할 수 있습니다. (동적 타입 지원) var c, python, java = true, false, "no!"Go에서는 := 을 사용하여 변수 명을 지정할 수도 있습니다. 함수 내에서 := 을 사용하면 var 과 명시적인 타입(e.g. int, bool) 을 생략할 수 있습니다. (그러나 함수 밖에서는 := 선언을 사용할 수 없습니다.) c, py..