错误函数()。字符串未定义(类型字符串没有字段或方法字符串)
Posted
技术标签:
【中文标题】错误函数()。字符串未定义(类型字符串没有字段或方法字符串)【英文标题】:Error function().String undefined (type string has no field or method String) 【发布时间】:2021-11-26 22:28:17 【问题描述】:我尝试在 Go 中运行基于 gRPC 服务的代码,但一直未能完成调试。在这里,我在下面添加我的部分代码。请随时发布任何代码建议或 cmets。
func (b *BookInfo) GetRate(ctx context.Context, xr *pb.RateRequest) (*pb.RateResponse, error)
// b.log.Info("Handle request for GetRate", "Article Name", xr.GetArticleName(), "Article Review", xr.GetArticleReview())
log.Printf("Received: ", "Article Name", xr.GetArticleName(), "Article Review", xr.GetArticleReview())
rt, err := b.rating.GetRatings(xr.GetArticleName().String(), xr.GetArticleReview().String())
if err != nil
return nil, err
return &pb.RateResponseRating: rt, nil
保存在 bookInfo_server
func (x *RateRequest) GetArticleName() string
if x != nil
return x.ArticleName
return ""
func (x *RateRequest) GetArticleReview() string
if x != nil
return x.ArticleReview
return ""
最后一部分
type RateResponse struct
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Rating Ratings `protobuf:"varint,1,opt,name=rating,proto3,enum=Ratings" json:"rating,omitempty"`
保存在 bookInfo.pb.go 文件中
错误:
bookInfo_server/bookInfo_server.go:28:52: xr.GetArticleName().String undefined (type string has no field or method String)
bookInfo_server/bookInfo_server.go:28:84: xr.GetArticleReview().String undefined (type string has no field or method String)
bookInfo_server/bookInfo_server.go:33:26: cannot use rt (type string) as type bookInfo.Ratings in field value
【问题讨论】:
使用xr.GetArticleName()
,而不是xr.GetArticleName().String()
。最后一个错误取决于Ratings
的类型定义
是的,上面的答案是对的
【参考方案1】:
类型字符串在第一个和第二个错误中没有xr.GetArticleName().string
的方法或字段,
您可以在代码中使用 xr.GetArticleName()
代替它
最后一个错误是Ratings
的类型定义。
【讨论】:
以上是关于错误函数()。字符串未定义(类型字符串没有字段或方法字符串)的主要内容,如果未能解决你的问题,请参考以下文章
Next Js 错误:元素类型无效:预期为字符串(对于内置组件)或类/函数(对于复合组件)但得到:未定义
为啥在 TypeScript 中的“任何”字段类型变量上使用“字符串”函数时没有编译时错误?