package main
import "fmt"
func main() {
a := Add(1, 2)
fmt.Println(a) // 3
b, d := AddSub(1, 2)
fmt.Println(b, d)// 3 -1
}
func Add(n1 int, n2 int) int {
return n1 + n2
}
// 여러개의 반환 값을 가질 수 있다.
func AddSub(n1 int, n2 int) (int, int) {
return n1 + n2, n1 - n2
}
일반적인 사용방법이다.
package main
import (
"fmt"
)
func main() {
CountDown("A")
CountDown("B")
}
func CountDown(name string) {
for i := 3; i > 0; i-- {
fmt.Println(name, i)
}
}
// A 3
// A 2
// A 1
// B 3
// B 2
// B 1
쉬운 방법으로 비동기 작업을 수행할 수 있다.
비동기 작업이기에 순서에 대해서 보장하지 않는다.
package main
import (
"fmt"
"time"
)
func main() {
go CountDown("A")
go CountDown("B")
time.Sleep(5 * time.Second)
}
func CountDown(name string) {
for i := 3; i > 0; i-- {
fmt.Println(name, i)
time.Sleep(1 * time.Second)
}
}
// A 3
// B 3
// A 2
// B 2
// B 1
// A 1