当前位置: 首页 > news >正文

o2o网站系统/深圳百度快速排名提升

o2o网站系统,深圳百度快速排名提升,网站优化方式有哪些,电商网站开发项目计划书1、前提 已安装好golang,并开启go mod,同时设置golang的国内镜像 2、安装protoc 3.13.0 下载链接:https://github.com/protocolbuffers/protobuf/releases/tag/v3.13.0 下载相应平台安装包 3、为protoc安装go语言插件,安装grpc-gateway V1版本 在命…

1、前提

已安装好golang,并开启go mod,同时设置golang的国内镜像

2、安装protoc 3.13.0

下载链接:https://github.com/protocolbuffers/protobuf/releases/tag/v3.13.0

下载相应平台安装包

3、为protoc安装go语言插件,安装grpc-gateway V1版本

在命令行中,执行以下命令:

go install go install github.com/grpc-ecosystem/grpc-gateway/tree/v1.16.0/protoc-gen-grpc-gateway@latest  github.com/grpc-ecosystem/grpc-gateway/tree/v1.16.0/protoc-gen-swagger@latestgithub.com/golang/protobuf/protoc-gen-go@latest

4、生成 gRPC 代码

  • 新建proto文件: trip.proto
syntax="proto3";
package coolcar;
option go_package="coolcar/proto/gen/go;trippb";

其中 option go_package="coolcar/proto/gen/go;trippb";

coolcar/proto/gen/go:表示生成的文件存放目录

trippb:表示生成的go文件包的名字

建议:

包名称:trippb
proto文件名称为:trip.proto
两者名字前缀最好要一致。

  • 建立三个message,同时包含复合类型(Location)和枚举类型(TripStatus)以及repeated重复类型
syntax="proto3";
package coolcar;
option go_package="coolcar/proto/gen/go;trippb";message Location {double latitude = 1;double longitude = 2;
}enum TripStatus {TS_NOT_SPECIFIED = 0;NOT_STARTED = 1;IN_PROGRESS = 2;FINISHED = 3;PAID = 4;
}
message Trip {string start = 1;string end = 2;Location start_pos = 5;Location end_pos = 6;repeated Location path_locations = 7;int64 duration_sec = 3;int64 fee_cent = 4;TripStatus status = 8;
}
  • 运行以下命令
protoc -I=. --go_out=paths=source_relative:gen/go trip.proto

生成trip.pb.go文件

 可以看出,其中proto中的double类型转换为golang的float64,枚举类型转换为int32,复合类型为指针类型,repeated类型转换为指针切片。

5、运行实例

package mainimport "fmt"
import "encoding/json"
import trippb "coolcar/proto/gen/go"
import "google.golang.org/protobuf/proto"func main() {trip := trippb.Trip{Start:"abc",End:"end",DurationSec:3600,FeeCent:10000,StartPos:&trippb.Location{ //必须为取地址Latitude:30,Longitude:120,},EndPos:&trippb.Location{Latitude:35,Longitude:115,},PathLocations:[]*trippb.Location{ //指针切片{Latitude:31,Longitude:119,},{Latitude:32,Longitude:118,},},Status:trippb.TripStatus_IN_PROGRESS,}b,err := proto.Marshal(&trip) //序列化if err != nil {panic(err)}fmt.Printf("%X\n",b)var trip2 trippb.Triperr = proto.Unmarshal(b,&trip2) //反序列化if err != nil {panic(err)}fmt.Println(&trip2)b,err =	json.Marshal(&trip2)if err != nil {panic(err)}fmt.Printf("%s\n",b)
}

(1)关键在于此语句:

import trippb "coolcar/proto/gen/go"

与proto中的定义对应起来:option go_package="coolcar/proto/gen/go;trippb";

包名称为:trippb

包路径为:coolcar/proto/gen/go

(2)序列化:

b,err := proto.Marshal(&trip) //序列化

(3)反序列化

err = proto.Unmarshal(b,&trip2) //反序列化

(4)输出结果:

http://www.lbrq.cn/news/951139.html

相关文章:

  • 建造网站需要什么/企业邮箱域名
  • 制作网站程序/seo都用在哪些网站
  • 学前端好找工作吗/seo和sem的概念
  • wordpress调用媒体库/seo网站推广的主要目的
  • 无法登录wordpress/青岛网站seo
  • 何炅做的代言网站/互联网营销软件
  • 免费的个人简历模板电子版/广州百度快速排名优化
  • 科技型中小企业怎么认定/安徽网站关键词优化
  • 建站公司上海/百度旧版本下载
  • 如何做一个企业的网站/长沙疫情最新消息
  • 专业建设网站服务公司/关键词排名霸屏代做
  • 大城县企业网站建设/环球网疫情最新动态
  • 旅游网站模块分类/营销策划培训
  • 网站制作.com语言/谷歌 chrome 浏览器
  • 企业做淘宝客网站有哪些/网络推广外包代理
  • 凡科做的网站可以在百度搜到吗/培训心得体会500字
  • 中国消防日/seo营销推广服务公司
  • 兵团建设环保局网站/网站建设关键词排名
  • 广州海珠做网站/网站推广的基本方法是
  • 宁波高端网站建设联系方式/百度关键词价格查询
  • 卡当网站建设/西安seo引擎搜索优化
  • 做搜索引擎网站/北京度seo排名
  • 南阳做网站公司哪家好/图片外链上传网站
  • wordpress文章页面添加广告/seo合作代理
  • 网站制作报价/九江seo公司
  • 如何在人力资源网站做合同续签/hao123上网从这里开始官方
  • 做昆特牌的网站/网站搜索优化官网
  • 优秀网页案例/东莞百度seo关键词优化
  • 网站制作上哪学校/百度推广官网网站
  • 可以发外链的网站或平台有哪些/seo是哪个英文的简写
  • React探索高性能Tree树组件实现——react-window、react-vtree
  • C# 实现:动态规划解决 0/1 背包问题
  • selenium爬取图书信息
  • MySQL 8.0 OCP 1Z0-908 题目解析(31)
  • Vue组件之间通信
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘pytest’问题