ฟังก์ชั่นระเหยใน Golang

ฟังก์ชัน Variadic ใน Goช่วยให้คุณสามารถส่งอาร์กิวเมนต์จำนวนไม่แน่นอนไปยังฟังก์ชันได้ คุณสมบัตินี้มีประโยชน์เมื่อคุณไม่ทราบล่วงหน้าว่าคุณจะผ่านอาร์กิวเมนต์จำนวนเท่าใด ฟังก์ชันGolang Variadic  ยอมรับอาร์กิวเมนต์หลายตัวที่มีประเภทเดียวกัน และสามารถเรียกใช้ด้วยอาร์กิวเมนต์ได้จำนวนเท่าใดก็ได้ รวมถึงไม่มีเลยด้วยซ้ำ

ฟังก์ชั่นระเหยใน Golang

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

การใช้ฟังก์ชัน Variadic

เมื่อกำหนดฟังก์ชัน variadic คุณต้องระบุประเภทอาร์กิวเมนต์ตามด้วยจุดไข่ปลา (...) เหมือนในตัวอย่างข้างต้น ภายในฟังก์ชันนั้น อาร์กิวเมนต์เหล่านี้สามารถคิดได้ว่าเป็นสไลซ์

การเรียกใช้ฟังก์ชัน variadic

คุณสามารถเรียกใช้ฟังก์ชัน variadic ได้ด้วยอาร์กิวเมนต์จำนวนเท่าใดก็ได้ รวมถึงศูนย์ด้วย ฟังก์ชันนี้จะปฏิบัติต่ออาร์กิวเมนต์เป็นสไลซ์

ตัวอย่างเช่น:

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

ฟังก์ชัน Variadic ที่มีพารามิเตอร์ต่างกัน

คุณสามารถรวมพารามิเตอร์ Variadic กับพารามิเตอร์ปกติในฟังก์ชันได้ พารามิเตอร์ Variadic จะต้องเป็นพารามิเตอร์สุดท้ายเสมอ

ตัวอย่างเช่น:

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:

ข้อจำกัดของฟังก์ชัน Variadic

  • ฟังก์ชัน Variadic สามารถมีพารามิเตอร์ Variadic ได้เพียงตัวเดียวและจะต้องเป็นพารามิเตอร์สุดท้าย
  • คุณไม่สามารถมีพารามิเตอร์ variadic หลายตัวในนิยามฟังก์ชันเดียวได้
Sign up and earn $1000 a day ⋙

Leave a Comment

แล็ปท็อปที่ดีที่สุดสำหรับนักเรียนในปี 2025

แล็ปท็อปที่ดีที่สุดสำหรับนักเรียนในปี 2025

นักศึกษาจำเป็นต้องมีแล็ปท็อปเฉพาะทางสำหรับการเรียน ไม่เพียงแต่จะต้องมีพลังเพียงพอที่จะทำงานได้ดีในสาขาวิชาที่เลือกเท่านั้น แต่ยังต้องมีขนาดกะทัดรัดและน้ำหนักเบาพอที่จะพกพาไปได้ตลอดวัน

วิธีเพิ่มเครื่องพิมพ์ลงใน Windows 10

วิธีเพิ่มเครื่องพิมพ์ลงใน Windows 10

การเพิ่มเครื่องพิมพ์ลงใน Windows 10 เป็นเรื่องง่าย แม้ว่ากระบวนการสำหรับอุปกรณ์แบบมีสายจะแตกต่างจากอุปกรณ์ไร้สายก็ตาม

วิธีตรวจสอบ RAM และตรวจสอบข้อผิดพลาด RAM บนคอมพิวเตอร์ของคุณด้วยอัตราความแม่นยำสูงสุด

วิธีตรวจสอบ RAM และตรวจสอบข้อผิดพลาด RAM บนคอมพิวเตอร์ของคุณด้วยอัตราความแม่นยำสูงสุด

อย่างที่ทราบกันดีว่า RAM เป็นส่วนประกอบฮาร์ดแวร์ที่สำคัญมากในคอมพิวเตอร์ ทำหน้าที่เป็นหน่วยความจำในการประมวลผลข้อมูล และเป็นปัจจัยที่กำหนดความเร็วของแล็ปท็อปหรือพีซี ในบทความด้านล่างนี้ WebTech360 จะแนะนำวิธีการตรวจสอบข้อผิดพลาดของ RAM โดยใช้ซอฟต์แวร์บน Windows

ความแตกต่างระหว่างทีวีธรรมดากับสมาร์ททีวี

ความแตกต่างระหว่างทีวีธรรมดากับสมาร์ททีวี

สมาร์ททีวีเข้ามาครองโลกอย่างแท้จริง ด้วยคุณสมบัติที่ยอดเยี่ยมมากมายและการเชื่อมต่ออินเทอร์เน็ต เทคโนโลยีได้เปลี่ยนแปลงวิธีการชมทีวีของเรา

ทำไมช่องแช่แข็งไม่มีแสง แต่ตู้เย็นมี?

ทำไมช่องแช่แข็งไม่มีแสง แต่ตู้เย็นมี?

ตู้เย็นเป็นเครื่องใช้ไฟฟ้าที่คุ้นเคยในครัวเรือน ตู้เย็นโดยทั่วไปจะมี 2 ช่อง โดยช่องแช่เย็นจะมีขนาดกว้างขวางและมีไฟที่เปิดอัตโนมัติทุกครั้งที่ผู้ใช้งานเปิด ในขณะที่ช่องแช่แข็งจะแคบและไม่มีไฟส่องสว่าง

2 วิธีในการแก้ไขความแออัดของเครือข่ายที่ทำให้ Wi-Fi ช้าลง

2 วิธีในการแก้ไขความแออัดของเครือข่ายที่ทำให้ Wi-Fi ช้าลง

เครือข่าย Wi-Fi ได้รับผลกระทบจากปัจจัยหลายประการนอกเหนือจากเราเตอร์ แบนด์วิดท์ และสัญญาณรบกวน แต่ยังมีวิธีชาญฉลาดบางอย่างในการเพิ่มประสิทธิภาพเครือข่ายของคุณ

วิธีดาวน์เกรดจาก iOS 17 เป็น iOS 16 โดยไม่สูญเสียข้อมูลโดยใช้ Tenorshare Reiboot

วิธีดาวน์เกรดจาก iOS 17 เป็น iOS 16 โดยไม่สูญเสียข้อมูลโดยใช้ Tenorshare Reiboot

หากคุณต้องการกลับไปใช้ iOS 16 ที่เสถียรบนโทรศัพท์ของคุณ นี่คือคำแนะนำพื้นฐานในการถอนการติดตั้ง iOS 17 และดาวน์เกรดจาก iOS 17 เป็น 16

เมื่อกินโยเกิร์ตเป็นประจำทุกวัน จะเกิดอะไรขึ้นกับร่างกาย?

เมื่อกินโยเกิร์ตเป็นประจำทุกวัน จะเกิดอะไรขึ้นกับร่างกาย?

โยเกิร์ตเป็นอาหารที่ยอดเยี่ยม กินโยเกิร์ตทุกวันดีจริงหรือ? เมื่อคุณกินโยเกิร์ตทุกวัน ร่างกายจะเปลี่ยนแปลงไปอย่างไรบ้าง? ลองไปหาคำตอบไปด้วยกัน!

ข้าวประเภทไหนดีต่อสุขภาพมากที่สุด?

ข้าวประเภทไหนดีต่อสุขภาพมากที่สุด?

บทความนี้จะกล่าวถึงประเภทของข้าวที่มีคุณค่าทางโภชนาการสูงสุดและวิธีเพิ่มประโยชน์ด้านสุขภาพจากข้าวที่คุณเลือก

วิธีตื่นนอนให้ตรงเวลาในตอนเช้า

วิธีตื่นนอนให้ตรงเวลาในตอนเช้า

การกำหนดตารางเวลาการนอนและกิจวัตรประจำวันก่อนเข้านอน การเปลี่ยนนาฬิกาปลุก และการปรับเปลี่ยนการรับประทานอาหารเป็นมาตรการบางประการที่จะช่วยให้คุณนอนหลับได้ดีขึ้นและตื่นนอนตรงเวลาในตอนเช้า

เคล็ดลับสำหรับการเล่น Rent Please! การจำลองผู้ให้เช่าบ้านสำหรับมือใหม่

เคล็ดลับสำหรับการเล่น Rent Please! การจำลองผู้ให้เช่าบ้านสำหรับมือใหม่

ขอเช่าหน่อยคะ! Landlord Sim เป็นเกมจำลองมือถือบน iOS และ Android คุณจะเล่นเป็นเจ้าของอพาร์ทเมนท์และเริ่มให้เช่าอพาร์ทเมนท์โดยมีเป้าหมายในการอัพเกรดภายในอพาร์ทเมนท์ของคุณและเตรียมพร้อมสำหรับผู้เช่า

รหัสป้องกันหอคอยในห้องน้ำล่าสุดและวิธีการป้อนรหัส

รหัสป้องกันหอคอยในห้องน้ำล่าสุดและวิธีการป้อนรหัส

รับรหัสเกม Bathroom Tower Defense Roblox และแลกรับรางวัลสุดน่าตื่นเต้น พวกเขาจะช่วยคุณอัพเกรดหรือปลดล็อคหอคอยที่สร้างความเสียหายได้มากขึ้น

โครงสร้าง สัญลักษณ์ และหลักการทำงานของหม้อแปลงไฟฟ้า

โครงสร้าง สัญลักษณ์ และหลักการทำงานของหม้อแปลงไฟฟ้า

มาเรียนรู้เรื่องโครงสร้าง สัญลักษณ์ และหลักการทำงานของหม้อแปลงแบบแม่นยำที่สุดกันดีกว่า

4 วิธีที่ AI ช่วยทำให้สมาร์ททีวีดีขึ้น

4 วิธีที่ AI ช่วยทำให้สมาร์ททีวีดีขึ้น

ตั้งแต่คุณภาพของภาพและเสียงที่ดีขึ้นไปจนถึงการควบคุมด้วยเสียงและอื่นๆ อีกมากมาย คุณสมบัติที่ขับเคลื่อนด้วย AI เหล่านี้ทำให้สมาร์ททีวีดีขึ้นมาก!

เหตุใด ChatGPT จึงดีกว่า DeepSeek

เหตุใด ChatGPT จึงดีกว่า DeepSeek

ในตอนแรกผู้คนมีความหวังสูงกับ DeepSeek ในฐานะแชทบอท AI ที่ทำการตลาดในฐานะคู่แข่งที่แข็งแกร่งของ ChatGPT จึงรับประกันถึงความสามารถและประสบการณ์การแชทอันชาญฉลาด