Funkcje lotne w Golang

Funkcje zmienne w języku Go umożliwiają przekazywanie zmiennej liczby argumentów do funkcji. Funkcja ta jest przydatna, gdy nie wiesz z góry, ile argumentów przekażesz. Funkcja zmienna języka Go  akceptuje wiele argumentów tego samego typu i może być wywołana z dowolną liczbą argumentów, również z brakiem argumentów.

Funkcje lotne w 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())
}

Wynik:

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

Składnia:

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

W powyższej składni:

  • parameters ...Typeoznacza, że ​​funkcja może zaakceptować zmienną liczbę argumentów typu Typ.
  • Do argumentów funkcji można uzyskać dostęp jako do wycinka.

Jak używać niepewnych funkcji w Golangu

Korzystanie z funkcji wariadycznych

Definiując funkcję wariadyczną, należy określić typ argumentu, po którym następuje wielokropek (...), jak w przykładzie powyżej. Wewnątrz funkcji argumenty te można traktować jako wycinek.

Wywoływanie funkcji wariadycznej

Funkcję wariadyczną można wywołać z dowolną liczbą argumentów, łącznie z zerem. Funkcja ta traktuje argumenty jako wycinek.

Na przykład:

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())
}

Wynik:

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

Funkcja wariadyczna z różnymi parametrami

W jednej funkcji można również łączyć parametry zmienne ze zwykłymi parametrami. Parametry zmienne muszą zawsze być ostatnim parametrem.

Na przykład:

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:")
}

Wynik:

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

Ograniczenia funkcji wariadycznych

  • Funkcje zmienne mogą mieć tylko jeden parametr zmienny i musi to być ostatni parametr.
  • W jednej definicji funkcji nie można mieć wielu parametrów zmiennych.
Sign up and earn $1000 a day ⋙

Leave a Comment

Nie musisz mieć wielu aplikacji Adobe Mobile, Adobe Express to jedyna aplikacja, której potrzebujesz!

Nie musisz mieć wielu aplikacji Adobe Mobile, Adobe Express to jedyna aplikacja, której potrzebujesz!

Firma Adobe oferuje ponad 4 konkretne aplikacje do edycji zdjęć na telefon — wszystkie są tak podobne, że trudno zdecydować, która jest naprawdę potrzebna.

5 gadżetów, które zamieniają zwykły telewizor w inteligentny

5 gadżetów, które zamieniają zwykły telewizor w inteligentny

Zwykły telewizor nadal może nauczyć się nowych sztuczek za pomocą kilku gadżetów i w ciągu kilku minut stać się lepszy od drogiego telewizora Smart TV.

Jak korzystać z pilota do klimatyzatora Panasonic

Jak korzystać z pilota do klimatyzatora Panasonic

Prawidłowe korzystanie z pilota do klimatyzatora Panasonic pozwoli nam w pełni wykorzystać jego funkcje.

Gemini wprowadza Talk Live dla zdjęć, plików i YouTube

Gemini wprowadza Talk Live dla zdjęć, plików i YouTube

Aplikacja Gemini Live wzbogaciła się o funkcję „Rozmawiaj na żywo o…”, która będzie teraz szerzej dostępna na urządzeniach z systemem Android. Wcześniej Gemini Live akceptowało tylko wprowadzanie głosowe, ale „Talk Live about” rozszerzył możliwość przesyłania treści

Microsoft Copilot ulepszony dzięki dogłębnym badaniom

Microsoft Copilot ulepszony dzięki dogłębnym badaniom

Firma Microsoft w końcu wprowadza funkcjonalność Deep Research do swojego Copilot AI. Umożliwia użytkownikom przeprowadzanie dogłębnych, wieloetapowych badań na dowolny temat.

Jak zamienić zdjęcie w szkic ołówkiem w Photoshopie

Jak zamienić zdjęcie w szkic ołówkiem w Photoshopie

W tym samouczku dowiesz się, jak łatwo przekształcić zdjęcie w szkic ołówkiem za pomocą programu Adobe Photoshop.

Funkcje lotne w Golang

Funkcje lotne w Golang

Funkcje zmienne w języku Go umożliwiają przekazywanie zmiennej liczby argumentów do funkcji. Oto wszystko, co musisz wiedzieć o funkcjach ulotnych w języku Go.

Jak pisać kolorowe litery w aplikacji Lien Quan Mobile

Jak pisać kolorowe litery w aplikacji Lien Quan Mobile

Aby pisać kolorowy tekst w aplikacji Lien Quan Mobile, postępuj zgodnie z instrukcjami podanymi w tym artykule. Kolorowe znaki w LQ Mobile będą bardziej widoczne.

7 procesów Menedżera zadań, które nigdy nie powinny się kończyć

7 procesów Menedżera zadań, które nigdy nie powinny się kończyć

Sekcja procesów systemowych Windows, znajdująca się na dole listy w Menedżerze zadań systemu Windows 10, zawiera kilka ważnych procesów, które są niezbędne do prawidłowej pracy komputera.

Apple pozwala użytkownikom pozostać przy systemie iOS 15.7 przed uaktualnieniem do systemu iOS 16

Apple pozwala użytkownikom pozostać przy systemie iOS 15.7 przed uaktualnieniem do systemu iOS 16

Apple pozwala użytkownikom pozostać przy systemie iOS 15 i jednocześnie otrzymywać aktualizacje zabezpieczeń przed uaktualnieniem do systemu iOS 16.

Wyniki oceny wydajności procesorów Intel Core Ultra 5 225H, Core Ultra 7 255H i Core Ultra 9 285H są dostępne w Geekbench

Wyniki oceny wydajności procesorów Intel Core Ultra 5 225H, Core Ultra 7 255H i Core Ultra 9 285H są dostępne w Geekbench

Trzy jednostki SKU z nadchodzącej serii mobilnych układów Arrow Lake-H firmy Intel zostały przetestowane w Geekbench. Wyniki wykazały imponującą wydajność i specyfikację w trybie jednordzeniowym i wielordzeniowym.

Kto by pomyślał, że proces produkcji powszechnie znanych gumek recepturek jest tak skomplikowany i skomplikowany?

Kto by pomyślał, że proces produkcji powszechnie znanych gumek recepturek jest tak skomplikowany i skomplikowany?

Te małe gumki wyglądają prosto, ale proces ich wykonania jest bardziej skomplikowany niż mogłoby się wydawać. Poniżej przedstawiono cały proces wytwarzania gumek recepturek.

9 interesujących faktów o Merkurym

9 interesujących faktów o Merkurym

Merkury jest najmniejszą planetą w Układzie Słonecznym i jednocześnie planetą położoną najbliżej Słońca. Merkury okrąża Słońce z niewiarygodnie dużą prędkością, osiągając średnią prędkość niemal 106 000 mil na godzinę. To tylko kilka spośród wielu interesujących faktów na temat tej planety.

Jakie są rozmiary telewizorów 32-calowych, 40-calowych, 43-calowych, 55-calowych marek Sony, Samsung, LG?

Jakie są rozmiary telewizorów 32-calowych, 40-calowych, 43-calowych, 55-calowych marek Sony, Samsung, LG?

Poniższy artykuł pomoże Ci zrozumieć rozmiary obecnych linii telewizorów Sony, Samsung i LG, dzięki czemu będziesz mógł podjąć właściwą decyzję o zakupie.

7 prostych usprawnień technologicznych, które radykalnie poprawią jakość Twojego życia

7 prostych usprawnień technologicznych, które radykalnie poprawią jakość Twojego życia

Stworzenie zdrowej relacji z technologią może wydawać się trudne, ale małe zmiany często czynią dużą różnicę.