반응형
5장을 나가기에 앞서 4장 for 구문에 대해서 숙지 하지 않았다면 아래포스팅을 읽고 5장을 공부하자
https://joylucky7.tistory.com/21
함수
◆ 매개변수
func 함수이름(매개변수이름 매개변수자료형, 매개변수이름 매개변수자료형, …){
함수 내용
}
func add(a int, b int){
// a+b
}
● 매개변수의 자료형이 동일한 자료형이면 자료형은 하나만 작성해도 됨
func add(a , b int){
// a+b
}
◆ 리턴
func 함수이름(매개변수이름 매개변수자료형, 매개변수이름 매개변수자료형, …)리턴타입{
함수 내용
}
func add(a int, b int)int{
return a+b
}
● 다중 리턴
func add(a int, b int)(int, int){
return a+b, a-b
}
● Named Return: 반환하는 값을 미리 함수의 헤더에 정의하는 방식
func add(a int, b int)(add, sub, int){
add = a+b
sub = a-b
return
}
● 함수는 First class(일급 객체) 로서 변수에 바인딩이 가능하다
import "fmt"
var adder = func(a,b int)int{
return a+b
}
var subtractor = func(a,b int) int{
return a-b
}
func main() {
var addResult = adder(3,2)
var subResult = subtractor(3,2)
fmt.Println(addResult)
fmt.Println(subResult)
}
● 또한 함수와 if를 같이 사용한다면
package main
import (
"fmt"
"io/ioutil"
)
func main() {
b, err := ioutil.ReadFile("./joylucky.txt")
if err == nil {
fmt.Printf("contents: %s\n", b)
}
if b, err := ioutil.ReadFile("./joylucky.txt"); err == nil{
fmt.Printf("contents: %s\n", b)
}
fmt.Println("종료")
}
● 함수와 switch 같이 사용할 수 도 있다.
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
rand.Seed(time.Now().UnixNano()) // 현재 시간으로 Seed 값 설정
switch i := rand.Intn(10); { // rand.Intn 함수를 실행한 뒤 i에 대입
case i >= 3 && i < 6: // i가 3보다 크거나 같으면서 6보다 작을 때
fmt.Println("3 이상, 6 미만") // 코드 실행
case i == 9: // i가 9일 때
fmt.Println("9") // 코드 실행
default: // 모든 case에 해당하지 않을 때
fmt.Println(i) // 코드 실행
}
}
● 만약 다른 패키지 함수를 호출하고자 한다면
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
rand.Seed(time.Now().UnixNano()) // 현재 시간으로 Seed 값 설정
switch i := rand.Intn(10); { // rand.Intn 함수를 실행한 뒤 i에 대입
case i >= 3 && i < 6: // i가 3보다 크거나 같으면서 6보다 작을 때
fmt.Println("3 이상, 6 미만") // 코드 실행
case i == 9: // i가 9일 때
fmt.Println("9") // 코드 실행
default: // 모든 case에 해당하지 않을 때
fmt.Println(i) // 코드 실행
}
}
이상으로 기본 문법에 대해서 알아보았다.
반응형
'IT 초보코딩의 세계 > Go 언어' 카테고리의 다른 글
Go언어의 자료구조 맵(Map)와 컨테이너 (0) | 2023.03.30 |
---|---|
Go언어의 자료구조 배열과 슬라이스 1장 (6) | 2023.03.29 |
Go 언어의 기본 문법 for 구문 3장 (4) | 2023.03.24 |
Go 언어의 기본 문법 연산자와 포인터, if 구문, switch 구문 2장 (0) | 2023.03.24 |
Go 언어의 기본 문법 패키지와 변수,자료형 1장 (2) | 2023.03.23 |
댓글