Существующий метод отображается как неопределенный голанг - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь вызвать метод из другого каталога, но получаю сообщение о том, что метод отсутствует.У меня есть метод с первой буквой Uppercase.

У меня есть следующая структура каталогов

[laptop@laptop src]$ tree
.
├── hello
│   ├── hello.go
├── remote_method
│   └── remoteMethod.go

Мой main находится в hello.go и пытается вызвать функцию из пакета remote_method

package main
import 
 (
        "remote_method"
 )

func main() {
     mm := remote_method.NewObject()
     mm.MethodCall()
}

Файл remoteMethod.go имеет следующее содержимое

package remote_method

import (
.....
)

type DeclaredType struct {
        randomMap (map[string][](chan int))
}

func NewObject() DeclaredType {
        var randomMap (map[string][](chan int))
        m := DeclaredType{randomMap}
        return m
}

func MethodCall(m DeclaredType, param1 string, param2 string, param3 string, param4 string) {
     // Code to be run
}

Я получаю сообщение об ошибке

mm.MethodCall undefined (type remote_method.DeclaredType has no field or method MethodCall)

Может кто-нибудь помочь мне выяснить, почему метод не отображаетсяили любые возможные способы найти это.ТИА

1 Ответ

6 голосов
/ 26 марта 2019

Зарегистрируйте MethodCall () в качестве получателя в DeclaredType.

remote_method.go

package remote_method

import (
.....
)

type DeclaredType struct {
        randomMap (map[string][](chan int))
}

func NewObject() DeclaredType {
        var randomMap (map[string][](chan int))
        m := DeclaredType{randomMap}
        return m
}

func (d DeclaredType) MethodCall(m DeclaredType, param1 string, param2 string, param3 string, param4 string) {
     // Code to be run
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...