即使在golang中导入时,也未定义func

时间:2017-11-11 19:05:47

标签: go

我在GitHub下有一个项目,我在我的机器上本地工作。 以下是项目的结构

.weather:
   - weather-service.go
   - darksky-provider.go
.grpc-weather:
   - weather.proto
server.go

server.go文件完成如下:

import (
    pb "github.com/scayetanot/weather_service_go/grpc_weather"
    "net"
    "log"
    "golang.org/x/net/context"
    "google.golang.org/grpc"
    "google.golang.org/grpc/reflection"
    weather "github.com/scayetanot/weather_service_go/weather"
)

//Default configuration port
const (
    port = ":50051"
)

type server struct{}

// implementation of the interface with Server
func (s *server) GetWeather(ctx context.Context, in *pb.GetFromPlaceRequest) (*pb.GetFromPlaceReply, error) {
    log.Print("Retrieve data from weather service")
    forecast, err := weather.get_weather(ctx, in.Place, in.Date)
    if err != nil {
        log.Fatalf("failed to retrieve weather: %v", err)
    }
    log.Print("Reply weather to client")
    return &pb.GetFromPlaceReply{Weather: forecast}, nil
}

函数get_weather显示为undefined但我导入了pkg

weather "github.com/scayetanot/weather_service_go/weather"

但它还在抱怨。但它适用于名为" pb"

的导入

即使导入完成,也看不到任何关于func的想法?本地我运行go get github ..让我的项目在本地

您可以查看https://github.com/scayetanot/weather_service_go查看套餐天气和文件weather-service.go

欢迎任何想法或帮助

此致

1 个答案:

答案 0 :(得分:-4)

我不习惯,但看起来你已将它命名为。

如果您查看pb导入,其使用位置的前缀为pb.Method;我的猜测是GetWeather需要相同的。

e.g:

Weather.GetWeather或一些句法变体;你总是可以尝试没有前缀的导入。