Wątek przeniesiony 2021-09-16 09:49 z Inne języki programowania przez cerrato.

Funkcja w GoLang

0

Cześć

Znalazłem taki zapis funkcji z którym nie miałem wcześniej doczynienia:

func (mi MyInt) String() string {
    return fmt.Sprint("*", int(mi), "*")
}

Gdzie tutaj jest nazwa funkcji? Jak to się czyta?

2
func  // keyword
(mi MyInt) // typ na którym dana funkcja operuje. w go nie ma klas, więc można pisać funkcje "zbindowane" do struktury - tutaj właśnie podajesz jej typ i definiujesz sposób przekazywania do funkcji (w tym przypadku przez wartość)
String() // nazwa funkcji i parametry (w tym przypadku brak parametrów)
string // zwracany typ {
    return fmt.Sprint("*", int(mi), "*")
}

Polecam zrobić A Tour of Go, fajny interaktywny tutorial, który porusza wiele (wszystkie?) aspektów języka. Szczególnie w kontekście twojego pytania zobacz to

1

Funkcja nazywa się String i zwraca typ string. Wywoływana jest dla obiektu typu MyInt.

package main

import (
	"fmt"
)

type MyInt int

func (mi MyInt) xxxxxxxxxxx() string {
    return fmt.Sprint("*", int(mi), "*")
}

func main() {
	i := MyInt(10)
	fmt.Println(i.xxxxxxxxxxx())
}

To typowa praktyka, ze względu na obecność interfejsu Stringer: https://tour.golang.org/methods/17

1 użytkowników online, w tym zalogowanych: 0, gości: 1