2015-01-19 2 views

ответ

4

Объявление метода для типа не обязательно должно быть в том же исходном файле, что и объявление типа или другие объявления метода для этого типа. Объявления метода должны быть в том же пакете, что и объявление типа.

Объявление типа не может быть разделено на файлы.

Go не имеет классов.

+1

«Go не использует термин« классы », может быть? Ваш текст верен - Go не имеет ключевого слова и не используется в спецификации. Но я не хочу, чтобы кто-то думал, что они не могут делать то, что они привыкли делать с классами в Go, поскольку часто они могут с некоторой комбинацией названных типов/встраиваний/интерфейсов. – twotwotwo

0

в go вы можете иметь метод, связанный с любым типом внутри одного и того же пакета в любом файле. возьмите этот маленький пример объекта foo с помощью функции Bar.

package main 
import "fmt" 

type foo struct {} // put variables associated with the type here 
func (/*f*/ foo) Bar() { // put a value infront of foo if u need to access any elements in the object 
    // do something interesting 
    fmt.Println("Method called :D") 
} 

func main() { 
    example := foo{} 
    example.bar() 
} 

aslong as fong and bar declarions происходят в одном пакете, они могут быть размещены в любом файле.

Я надеюсь, что это продемонстрировало желаемую функциональность, которую вы пытаетесь реализовать/интересно, если go может поддерживать.

Смежные вопросы