Golang의 Volatile 함수

Go의 가변 함수를 사용하면 함수에 가변 개수의 인수를 전달할 수 있습니다. 이 기능은 전달할 인수의 개수를 미리 알 수 없을 때 유용합니다. Golang 가변 함수는  동일한 유형의 여러 인수를 허용하며, 인수의 개수에 제한이 없으며, 인수가 없어도 호출할 수 있습니다 .

Golang의 Volatile 함수

package main
import "fmt"

// Hàm Variadic tính tổng
func sum(nums ...int) int {
    total := 0
    for _, n := range nums {
        total += n
    }
    return total
}

func main() {
    fmt.Println("Sum of 1, 2, 3:", sum(1, 2, 3))
    fmt.Println("Sum of 4, 5:", sum(4, 5))
    fmt.Println("Sum of no numbers:", sum())
}

결과:

Sum of 1, 2, 3: 6
Sum of 4, 5: 9
Sum of no numbers: 0

통사론:

func functionName(parameters ...Type) ReturnType {
    // Code
}

위의 구문에서:

  • parameters ...Type해당 함수가 Type 유형의 가변 개수의 인수를 허용할 수 있음을 나타냅니다.
  • 함수의 인수에 슬라이스로 접근할 수 있습니다.

Golang에서 불확실 함수를 사용하는 방법

가변 함수 사용

가변 함수를 정의할 때는 위의 예에서처럼 인수 유형을 지정한 다음 생략 부호(...)를 붙입니다. 함수 내부에서 이러한 인수는 슬라이스로 생각할 수 있습니다.

가변 함수 호출

0을 포함하여 아무리 많은 인수를 사용해도 가변 함수를 호출할 수 있습니다. 이 함수는 인수를 슬라이스로 처리합니다.

예를 들어:

package main
import "fmt"

func sum(nums ...int) int {
    total := 0
    for _, n := range nums {
        total += n
    }
    return total
}

func main() {
    fmt.Println("Sum of 1, 2, 3:", sum(1, 2, 3))
    fmt.Println("Sum of 4, 5:", sum(4, 5))
    fmt.Println("Sum of no numbers:", sum())
}

결과:

Sum of 1, 2, 3: 6
Sum of 4, 5: 9
Sum of no numbers: 0

매개변수가 다른 가변 함수

함수에서 가변 매개변수와 일반 매개변수를 결합할 수도 있습니다. 가변 매개변수는 항상 마지막 매개변수여야 합니다.

예를 들어:

package main
import "fmt"

// Hàm Variadic tính tổng
func sum(nums ...int) int {
    total := 0
    for _, n := range nums {
        total += n
    }
    return total
}

// Hàm với tham số thông thường và variadic 
func greet(prefix string, nums ...int) {
    fmt.Println(prefix)
    for _, n := range nums {
        fmt.Println("Number:", n)
    }
}
func main() {
    greet("Sum of numbers:", 1, 2, 3)
    greet("Another sum:", 4, 5)
    greet("No numbers sum:")
}

결과:

Sum of numbers:
Number: 1
Number: 2
Number: 3
Another sum:
Number: 4
Number: 5
No numbers sum:

가변 함수의 한계

  • 가변 함수는 가변 매개변수를 하나만 가질 수 있으며, 이는 마지막 매개변수여야 합니다.
  • 단일 함수 정의에는 여러 개의 가변 매개변수를 가질 수 없습니다.

댓글 남기기

인천에서 냉장고 버리는 방법: 무상수거·새 제품 회수·대형폐기물 신고 비교

인천에서 냉장고 버리는 방법: 무상수거·새 제품 회수·대형폐기물 신고 비교

인천에서 냉장고를 버릴 때 선택할 수 있는 폐가전 무상 방문수거, 새 제품 배송 시 회수, 군·구 대형폐기물 신고 방법을 비용·편의성·수거 조건별로 비교합니다.

국민연금 체납하면 어떤 불이익이 있나? 연체금·가입기간·압류까지 정리

국민연금 체납하면 어떤 불이익이 있나? 연체금·가입기간·압류까지 정리

국민연금 보험료를 체납하면 연체금이 붙고, 미납 기간이 가입기간에서 빠질 수 있으며, 독촉 후에는 체납처분과 압류가 진행될 수 있습니다. 지역가입자·사업장가입자·임의가입자별 차이와 대응 방법을 2026년 기준으로 정리합니다.

울산에서 부푼 보조배터리 버리는 방법: 일반쓰레기 말고 어디에 내야 할까?

울산에서 부푼 보조배터리 버리는 방법: 일반쓰레기 말고 어디에 내야 할까?

울산에서 부풀어 오른 보조배터리를 안전하게 버리는 방법을 정리했습니다. 사용 중지, 수거처 확인, 이동 전 주의점, 일반 폐건전지함과 소형 폐가전 수거함의 차이를 공식 자료를 바탕으로 설명합니다.

연차휴가는 몇 개 발생하나? 입사 첫해부터 근속연수별 계산까지

연차휴가는 몇 개 발생하나? 입사 첫해부터 근속연수별 계산까지

연차휴가는 입사 첫해 최대 11일, 1년 뒤 15일이 기본입니다. 출근율, 5인 이상 사업장 기준, 근속 가산, 단시간 근로자와 퇴직 시 예외까지 2026년 시행 기준으로 설명합니다.

전주에서 이불 버리는 방법: 신고 기준·수수료·배출 순서

전주에서 이불 버리는 방법: 신고 기준·수수료·배출 순서

전주에서 이불은 의류수거함에 넣지 말고, 작은 이불은 종량제봉투에, 큰 이불은 대형폐기물로 신고하세요. 수수료와 예약번호 표시, 배출 절차를 정리했습니다.

남양주 종량제봉투 가격과 판매처 확인 방법: 2026년 기준으로 정확하게 찾기

남양주 종량제봉투 가격과 판매처 확인 방법: 2026년 기준으로 정확하게 찾기

남양주시 종량제봉투의 2026년 공식 가격과 지정 판매소 확인 방법을 정리했습니다. 일반용·음식물용·재사용 봉투 차이, 판매처 확인 순서, 가격이 다를 때 점검할 사항까지 안내합니다.

고양에서 이불 버리는 방법: 대형폐기물 신고·수수료·배출 방식 비교

고양에서 이불 버리는 방법: 대형폐기물 신고·수수료·배출 방식 비교

고양시에서 이불을 버릴 때 의류수거함에 넣어도 되는지, 하절기·동절기 이불 수수료, 인터넷·스티커·모바일 신고 방식의 차이와 실제 배출 절차를 비교해 정리합니다.

성남에서 냉장고 버리는 방법: 무상수거·판매점 회수·대형폐기물 신고 비교

성남에서 냉장고 버리는 방법: 무상수거·판매점 회수·대형폐기물 신고 비교

성남에서 냉장고를 버릴 때 이용할 수 있는 판매점 무상 회수, 폐가전 무상방문수거, 성남시 대형폐기물 신고를 조건·비용·운반 부담별로 비교합니다.

기초연금은 누가 받을 수 있나? 2026년 기준으로 보는 대상·소득인정액·감액 기준

기초연금은 누가 받을 수 있나? 2026년 기준으로 보는 대상·소득인정액·감액 기준

2026년 기초연금 대상 조건을 만 65세, 소득인정액, 직역연금 제외, 국민연금 연계감액, 부부감액까지 차분하게 정리합니다. 신청 전 무엇을 확인해야 하는지도 안내합니다.

부푼 보조배터리는 어떻게 버려야 하나? 안전한 배출 순서와 확인 방법

부푼 보조배터리는 어떻게 버려야 하나? 안전한 배출 순서와 확인 방법

부푼 보조배터리는 일반 쓰레기에 버리면 안 됩니다. 사용 중지부터 119 신고 기준, 지자체·제조사 회수 문의와 배출 전 체크리스트까지 안내합니다.