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년 기준 실용 가이드

서울 종량제봉투 가격과 판매처 확인 방법: 2026년 기준 실용 가이드

서울 종량제봉투 가격과 지정 판매처를 정확히 확인하는 방법을 정리했습니다. 10L·20L·50L 가격, 자치구별 확인법, 판매점 찾기와 규격 선택 기준을 2026년 공식 자료로 안내합니다.

화성에서 컴퓨터 버리는 방법: 무료 폐가전 수거부터 대형폐기물 신고까지

화성에서 컴퓨터 버리는 방법: 무료 폐가전 수거부터 대형폐기물 신고까지

화성에서 데스크톱, 모니터, 노트북을 버리는 방법을 정리했습니다. 개인정보 삭제, 폐가전 무상방문수거 조건, 대형폐기물 신고, 배출 전 체크리스트까지 확인하세요.

안산에서 스프레이캔 버리는 방법: 가스 제거부터 캔류 배출까지

안산에서 스프레이캔 버리는 방법: 가스 제거부터 캔류 배출까지

안산시 기준으로 스프레이캔·에어졸캔을 안전하게 비우고 캔류로 분리배출하는 방법을 정리했습니다. 일반주택과 공동주택의 배출 차이, 가스 제거 요령, 확인할 점까지 안내합니다.

부산에서 스프레이캔 버리는 방법: 가스 제거부터 캔류 배출까지

부산에서 스프레이캔 버리는 방법: 가스 제거부터 캔류 배출까지

부산에서 스프레이캔을 안전하게 버리는 방법을 정리했습니다. 내용물·가스 제거, 캔류 분리배출, 아파트와 단독주택의 차이, 구·군별 수거일 확인법까지 안내합니다.

남양주에서 에어컨 버리는 방법: 무상방문수거부터 대형폐기물 신고까지

남양주에서 에어컨 버리는 방법: 무상방문수거부터 대형폐기물 신고까지

남양주에서 에어컨을 버릴 때 가장 먼저 확인할 것은 무상방문수거 가능 여부입니다. 철거 조건, 실내기·실외기 수거, 대형폐기물 신고 대안까지 정리합니다.

안양에서 스마트폰 버리는 방법: 폐휴대폰 배출·개인정보 삭제·수거처 안내

안양에서 스마트폰 버리는 방법: 폐휴대폰 배출·개인정보 삭제·수거처 안내

안양에서 스마트폰을 안전하게 버리는 방법을 정리했습니다. 2026년 9월 폐휴대폰 캠페인, 행정복지센터 배출, 무상방문수거 기준, 초기화와 SIM 제거까지 확인하세요.

안산에서 이불 버리는 방법: 종량제봉투와 대형폐기물 신고 기준부터 배출까지

안산에서 이불 버리는 방법: 종량제봉투와 대형폐기물 신고 기준부터 배출까지

안산에서 이불을 버릴 때 종량제봉투와 대형폐기물 중 무엇을 선택해야 하는지, 온라인 신고·필증 부착·배출장소·수거일 확인 방법을 공식 안내 기준으로 정리했습니다.

김해에서 에어컨 버리는 방법: 무료수거·판매점 회수·대형폐기물 신고 비교

김해에서 에어컨 버리는 방법: 무료수거·판매점 회수·대형폐기물 신고 비교

김해에서 에어컨을 버릴 때 폐가전 무상방문수거, 새 제품 구매 시 판매점 회수, 김해시 대형폐기물 신고 중 어떤 방법을 선택할지 조건과 차이를 정리했습니다.