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 中使用不確定函數

使用可變函數

定義可變函數時,您可以指定參數類型,後面跟著省略號 (...),如上例所示。在函數內部,這些參數可以被視為一個切片。

呼叫可變參數函數

您可以使用任意數量的參數(包括零)來呼叫可變函數。此函數將參數視為切片。

例如:

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

男性和女性的象徵從何而來?

男性和女性的象徵從何而來?

當今流行的男性和女性符號的含義可能並不為人所知。讓我們進一步了解男性和女性的符號!

科學家破解了黑洞的神秘歷史

科學家破解了黑洞的神秘歷史

關於黑洞的一個常見誤解是,它們不僅吞噬物質,也吞噬物質的歷史。關於黑洞歷史的真相終於被解開了。

無需多個 Adob​​e Mobile 應用程序,Adobe Express 就是您唯一需要的應用程式!

無需多個 Adob​​e Mobile 應用程序,Adobe Express 就是您唯一需要的應用程式!

Adobe 在手機上提供了 4 多個特定的照片編輯應用程式 - 它們都非常相似,很難分辨出您真正需要哪一個。

5個小工具讓普通電視變智慧電視

5個小工具讓普通電視變智慧電視

普通電視仍然可以透過一些小工具學習新技巧,並在幾分鐘內變得比昂貴的智慧電視更好。

松下空調遙控器使用方法

松下空調遙控器使用方法

正確使用松下空調遙控器將幫助我們充分利用空調的功能。

Gemini 推出 Talk Live 功能,用於照片、檔案和 YouTube

Gemini 推出 Talk Live 功能,用於照片、檔案和 YouTube

Gemini Live 增加了「即時討論」功能,現在該功能將在 Android 裝置上更廣泛地推廣。先前,Gemini Live 只接受語音輸入,但「Talk Live about」擴展了內容上傳

Microsoft Copilot 經過深入研究升級

Microsoft Copilot 經過深入研究升級

微軟終於將深度研究功能引入了其 Copilot AI。它允許使用者對任何主題進行徹底的、多步驟的研究。

如何在 Photoshop 中將照片變成鉛筆素描

如何在 Photoshop 中將照片變成鉛筆素描

本教學將向您展示如何使用 Adob​​e Photoshop 輕鬆地將照片轉換為鉛筆素描。

Golang 中的 Volatile 函數

Golang 中的 Volatile 函數

Go 中的可變函數可讓您向函數傳遞可變數量的參數。以下是您需要了解的有關 Golang 中的易失性函數的所有資訊。

如何在 Lien Quan Mobile 中書寫彩色字母

如何在 Lien Quan Mobile 中書寫彩色字母

若要在 Lien Quan Mobile 中輸入彩色文本,請按照本文中的說明進行操作。 LQ Mobile 彩色字元將更加引人注目。

7 個永遠不該結束的任務管理器進程

7 個永遠不該結束的任務管理器進程

Windows 系統進程部分位於 Windows 10 工作管理員清單的底部,包含幾個對電腦正常運作至關重要的重要進程。

蘋果允許用戶在升級到 iOS 16 之前繼續使用 iOS 15.7

蘋果允許用戶在升級到 iOS 16 之前繼續使用 iOS 15.7

蘋果允許用戶在升級到 iOS 16 之前繼續使用 iOS 15 並繼續接收安全性更新。

英特爾酷睿 Ultra 5 225H、酷睿 Ultra 7 255H 和酷睿 Ultra 9 285H CPU 效能評估結果可在 Geekbench 上查看

英特爾酷睿 Ultra 5 225H、酷睿 Ultra 7 255H 和酷睿 Ultra 9 285H CPU 效能評估結果可在 Geekbench 上查看

英特爾即將推出的 Arrow Lake-H 行動系列中的三個 SKU 已在 Geekbench 上進行了測試,顯示出相當令人印象深刻的單核和多核性能和規格。

誰能想到我們熟悉的橡皮筋的生產過程是如此複雜和精細?

誰能想到我們熟悉的橡皮筋的生產過程是如此複雜和精細?

小橡皮筋看起來簡單,但製作過程比你想像的複雜。以下是製作鬆緊帶的整個過程。

關於水星的 9 個有趣事實

關於水星的 9 個有趣事實

水星是太陽系中最小的行星,也是距離太陽最近的行星。水星繞太陽運行的速度快得令人難以置信,平均每小時近 106,000 英里。這些只是有關這個星球的眾多有趣事實中的一小部分。