Вызов функции из другого пакета, который вызывается получателем в Go - PullRequest
0 голосов
/ 19 марта 2020

Как мы вызываем функцию, которая находится в другом пакете и использует приемник. Мой вопрос похож на этот . Файлы следующие:

файл 1

package main

import "fmt"
import "functions" // I dont have problem creating the reference here
type foo struct {
    item1 int64
}
func main(){
    // can't make this call as it does not have reciever
    c:= functions.GetValue()
    // can't make this call as it does not have functions package
    c := foo.GetValue()
    // I want something like this
    c := foo.functions.GetValue()
}

файл 2

package functions

func (h *foo) GetValue() string{
    return "Hello from this another package"
}

1 Ответ

0 голосов
/ 19 марта 2020

Чтобы позвонить func (h *foo) getValue() string, вам нужно foo. Если вы хотите назвать его так, как вы говорите (functions.getValue(), где functions - имя пакета), тогда ваш файл 2 должен быть:

package functions

func GetValue() string{
    return "Hello from this another package"
}

и вы бы назвали это так: functions.GetValue().

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...