Работа с типами функций в Go

Я хотел создать функцию определенного типа. Я нашел один способ сделать это, но должны быть другие, более чистые и приятные способы, которые не включают использование 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 Я не смогу получить доступ к методу восклицательный .

12
задан ANisus 22 February 2012 в 19:34
поделиться