Я хотел создать функцию определенного типа. Я нашел один способ сделать это, но должны быть другие, более чистые и приятные способы, которые не включают использование var
. Каковы альтернативные способы объявления функции english
типа Greeting
?
package main
import "fmt"
type Greeting func(name string) string
func (g Greeting) exclamation(name string) string {
return g(name) + "!"
}
var english = Greeting(func(name string) string {
return "Hello, " + name
})
func main() {
fmt.Println(english("ANisus"))
fmt.Println(english.exclamation("ANisus"))
}
В приведенном выше примере я не могу обменять var english = Greeting ...
с english: = Greeting ...
, а также я не могу удалить Greeting (func ...)
и с тех пор оставить только func
Я не смогу получить доступ к методу восклицательный .