Golang
-
Go 함수 파라미터 유동적으로 사용하기Golang 2023. 9. 8. 08:40
1. 가변 파라미터(variable parameter) 함수의 마지막 파라미터를 `[]interface{}` 형태로 선언하여, 여러 개의 값을 전달할 수 있도록 한다. func sum(a, b int, c ...int) int { // c는 가변 파라미터 for _, v := range c { a += v } return a + b } // 사용 예시 fmt.Println(sum(1, 2, 3, 4, 5)) // 15 fmt.Println(sum(1, 2, 3)) // 6 2. 슬라이트 파라미터(slice) 함수의 마지막 파라미터를 `[]int` 형태로 선언하여, 여러 개의 값을 전달할 수 있도록 한다 func sum(a, b int, c []int) int { for _, v := range c { a..
-
Golang 실행 시간 측정Golang 2022. 7. 28. 16:34
프로그램의 성능을 확인하기 위해 실행시간을 측정해야 할 때가 있다. 이번에는 Golang에서 코드가 실행되는데 걸리는 시간을 측정하는 방법을 알아보자. time 패키지 사용 import ( "time" ) time 패키지는 시간을 표현하기 위한 Time 타입을 제공한다. 나노초 단위의 정밀도를 가진 구조체인데 세가지의 프로퍼티를 가진다 type Time struct { wall uint64 ext int64 loc *Location } 위 세가지의 프로퍼티의 정확한 쓰임새를 이해하지는 못했지만 time 패키지를 사용하는데는 아무런 문제가 없다. 시간 측정 time 패키지는 많은 기능을 제공해주지만 실행 시간 측정을 위해서는 다음 2가지만 알면 된다 `time.Now()`, `time.Since()` `t..
-
Command Line ArgumentGolang 2022. 7. 25. 09:56
Go 프로그램의 main() 함수는 다른 언어 처럼 argument 파라미터를 가지고 있지 않아서 os.Args를 사용해야 한다. os.Args 는 문자열 슬라이스로 정의되어 있고, Args는 프로그램의 Command Line 정보를 프로그램 명부터 순서대로 담고 있다. 프로그램이 2개의 agrument를 가진다고 가정했을 때, os.Args[0:1]는 실행되는 Go 프로그램 이름을 가지며, os.Args[1:2]는 첫번째 argument os.Args[2:3]는 두번째 argument를 가진다. example package main import ("fmt"; "os") func main() { fmt.Println("args : ", os.Args[0:1]) fmt.Println("args : ", o..
-
고루틴(goroutine)Golang 2022. 7. 12. 17:02
goroutine Go 프로그램 안에서 동시에 독립적으로 실행되는 흐름의 단위로, 스레드와 비슷한 개념 다음과 같이 go 키워드로 함수를 실행하면 새 고루틴이 만들어진다. go f(x, y) 예제 package main import ( "fmt" "time" ) func main() { fmt.Println("main 함수 시작", time.Now()) go long() go short() time.Sleep(5 * time.Second) // 5초 대기 fmt.Println("main 함수 종료", time.Now()) } func long() { fmt.Println("long 함수 시작", time.Now()) time.Sleep(3 * time.Second) // 3초 대기 fmt.Println(..