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:

가변 함수의 한계

  • 가변 함수는 가변 매개변수를 하나만 가질 수 있으며, 이는 마지막 매개변수여야 합니다.
  • 단일 함수 정의에는 여러 개의 가변 매개변수를 가질 수 없습니다.
Sign up and earn $1000 a day ⋙

Leave a Comment

여러 개의 Adobe Mobile 앱이 필요 없습니다. Adobe Express만 있으면 됩니다!

여러 개의 Adobe Mobile 앱이 필요 없습니다. Adobe Express만 있으면 됩니다!

Adobe는 휴대폰에서 4개 이상의 특정 사진 편집 앱을 제공합니다. 모두 너무 유사해서 실제로 필요한 앱을 구분하기 어렵습니다.

일반 TV를 스마트 TV로 바꿔주는 5가지 가젯

일반 TV를 스마트 TV로 바꿔주는 5가지 가젯

일반 TV도 몇 가지 가젯을 사용하면 새로운 기능을 익혀 단 몇 분 만에 값비싼 스마트 TV보다 더 나은 TV가 될 수 있습니다.

파나소닉 에어컨 리모컨 사용 방법

파나소닉 에어컨 리모컨 사용 방법

파나소닉 에어컨 리모컨을 올바르게 사용하면 에어컨의 기능을 최대한 활용하는 데 도움이 됩니다.

Gemini가 사진, 파일 및 YouTube에 대한 Talk Live를 출시합니다.

Gemini가 사진, 파일 및 YouTube에 대한 Talk Live를 출시합니다.

Gemini Live에 "Talk Live about" 기능이 추가되었으며, 이제 Android 기기에서 더 광범위하게 출시될 예정입니다. 기존 제미니 라이브는 음성 입력만 가능했지만, 'Talk Live about'을 통해 콘텐츠 업로드가 확대됐다.

심층 연구로 업그레이드된 Microsoft Copilot

심층 연구로 업그레이드된 Microsoft Copilot

Microsoft는 마침내 Copilot AI에 심층 연구 기능을 도입했습니다. 이를 통해 사용자는 어떤 주제에 대해서든 철저하고 여러 단계의 조사를 수행할 수 있습니다.

포토샵에서 사진을 연필 스케치로 바꾸는 방법

포토샵에서 사진을 연필 스케치로 바꾸는 방법

이 튜토리얼에서는 Adobe Photoshop을 사용하여 사진을 연필 스케치로 쉽게 바꾸는 방법을 보여줍니다.

Golang의 Volatile 함수

Golang의 Volatile 함수

Go의 가변 함수를 사용하면 함수에 가변 개수의 인수를 전달할 수 있습니다. Golang의 volatile 함수에 대해 알아야 할 모든 것을 소개합니다.

Lien Quan Mobile에서 컬러 글자를 쓰는 방법

Lien Quan Mobile에서 컬러 글자를 쓰는 방법

Lien Quan Mobile에서 컬러 텍스트를 작성하려면 이 문서의 지침을 따르세요. LQ 모바일 컬러 문자가 더욱 눈에 띄게 됩니다.

절대 끝나서는 안 될 7가지 작업 관리자 프로세스

절대 끝나서는 안 될 7가지 작업 관리자 프로세스

Windows 10 작업 관리자 목록 하단에 있는 Windows 시스템 프로세스 섹션에는 컴퓨터가 제대로 작동하는 데 필수적인 몇 가지 중요한 프로세스가 포함되어 있습니다.

Apple은 사용자가 iOS 16으로 업그레이드하기 전에 iOS 15.7을 유지할 수 있도록 허용합니다.

Apple은 사용자가 iOS 16으로 업그레이드하기 전에 iOS 15.7을 유지할 수 있도록 허용합니다.

Apple은 사용자가 iOS 16으로 업그레이드하기 전에도 보안 업데이트를 받으면서 iOS 15를 계속 사용할 수 있도록 허용합니다.

Intel Core Ultra 5 225H, Core Ultra 7 255H 및 Core Ultra 9 285H CPU 성능 평가 결과가 Geekbench에서 제공됩니다.

Intel Core Ultra 5 225H, Core Ultra 7 255H 및 Core Ultra 9 285H CPU 성능 평가 결과가 Geekbench에서 제공됩니다.

인텔의 차기 Arrow Lake-H 모바일 라인업에 속하는 3개의 SKU가 Geekbench에서 테스트되었으며, 매우 인상적인 단일 코어 및 멀티 코어 성능과 사양이 드러났습니다.

익숙한 고무줄을 만드는 과정이 이렇게 복잡하고 정교할 줄 누가 상상했겠는가?

익숙한 고무줄을 만드는 과정이 이렇게 복잡하고 정교할 줄 누가 상상했겠는가?

작은 고무줄은 간단해 보이지만, 실제로 만드는 과정은 생각보다 복잡합니다. 고무줄을 만드는 전체 과정은 다음과 같습니다.

수성에 대한 흥미로운 사실 ​​9가지

수성에 대한 흥미로운 사실 ​​9가지

수성은 태양계에서 가장 작은 행성이며, 태양에 가장 가까운 행성이기도 합니다. 수성은 믿을 수 없을 정도로 빠른 속도로 태양을 공전하며, 평균 속도는 시속 106,000마일에 달합니다. 이는 이 행성에 대한 많은 흥미로운 사실 ​​중 일부에 불과합니다.

소니, 삼성, LG 등에서 판매하는 32인치, 40인치, 43인치, 55인치 TV의 크기는 어떻게 되나요?

소니, 삼성, LG 등에서 판매하는 32인치, 40인치, 43인치, 55인치 TV의 크기는 어떻게 되나요?

아래 기사는 소니, 삼성, LG의 현재 TV 제품군의 크기를 이해하는 데 도움이 되며, 이를 통해 올바른 구매 결정을 내리는 데 도움이 될 것입니다.

삶의 질을 극적으로 향상시키는 7가지 간단한 기술 개선

삶의 질을 극적으로 향상시키는 7가지 간단한 기술 개선

기술과 건강한 관계를 맺는 것은 어려워 보일 수 있지만, 작은 변화가 큰 변화를 가져올 수 있습니다.