728x90
배열을 사용하면 더 다양한 요구사항을 구현할 수 있다.
오늘은 배열을 통해서 랜덤하게 그리팅 문구를 뽑아낼수 있는 함수를 작성해 볼 것이다.
먼저 지난번에 작성했던 greetings.go를 열어 다음 패키지를 추가한다.
import (
"errors"
"fmt"
//추가한 패키지
"math/rand"
)
해당 패키지는 랜덤하게 값을 뽑을 수 있도록 해주는 패키지이다.
다음으로 랜덤한 포맷을 리턴해주는 함수를 추가 해보겠다.
// randomFormat returns one of a set of greeting messages. The returned
// message is selected at random.
func randomFormat() string {
// A slice of message formats.
formats := []string{
"Hi, %v. Welcome!",
"Great to see you, %v!",
"Hail, %v! Well met!",
}
// Return a randomly selected message format by specifying
// a random index for the slice of formats.
return formats[rand.Intn(len(formats))]
}
해당 함수를 보면 총 세 개의 그리팅 포맷을 문자열 배열 안에 집어 넣는다.
배열을 선언하는 방식은 다음과 같은데
>> 변수 := []자료형{배열 안에 넣을 값}
으로 선언과 동시에 배열 변수에 값을 할당 할 수 있다.
리턴 시에는 해당 배열 변수의 특정 위치의 값을 리턴 하도록 랜덤 값을 배열의 위치로 세팅 해서 리턴 했다.
(참고) 랜덤 패키지의 Intn 함수란?
[rand.Intn은 0부터 변수로 들어온 int 값 까지 중에 랜덤한 정수를 뽑아주는 함수]
이제 이 함수를 hello.go 에서 호출 해보겠다.
이전에 빈칸으로 호출 했던 함수에 값을 넣어주겠다.
message, err := greetings.Hello("")
|
V
message, err := greetings.Hello("Gladys")
그 다음 hello.go를 실행하면 다음과 같이 실행 때 마다 3가지 인사 법 중 하나를 랜덤으로 프린트 하게 된다.
$ go run .
Great to see you, Gladys!
$ go run .
Hi, Gladys. Welcome!
$ go run .
Hail, Gladys! Well met!
728x90
반응형
'개인공부 > language' 카테고리의 다른 글
[GO] 에러 핸들링 방법 (1) | 2024.11.25 |
---|---|
[GO] 로컬 패키지 호출 방법 (0) | 2024.11.19 |
[GO] 함수 기본 작성법 (2) | 2024.11.12 |
[GO] 모듈과 패키지 (0) | 2024.11.05 |
[JAVA] ArrayList가 비어있는지 확인 하기 (0) | 2024.02.27 |