【Go学习】goLang入门

0. Go简介

Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。

对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。

它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。

1. 基本语法

1.1 基础语法

Go基础语法

1.2 书单

《Go语言实践》

2. go-mod

2.1 Module

go-Modules简明教程
Go Modules 是 Go 1.11 版本之后引入的,Go 1.11 之前使用 $GOPATH 机制。Go Modules 可以算作是较为完善的包管理工具。

2.2 go-mod下载安装

go-mod
go-mod使用

2.3 Goland配置

goland配置

3. go单元测试

Go Test 单元测试简明教程

go test 命令

testing - 单元测试

执行当前文件下面的所有单测文件

go test -gcflags=all=-l

PS: 可以配置一下goland中的git
使用命令更加的方便

4. protobuf(结构化数据存储格式)

protobuf 即 Protocol Buffers,是一种轻便高效的结构化数据存储格式,与语言、平台无关,可扩展可序列化。protobuf 性能和效率大幅度优于 JSON、XML 等其他的结构化数据格式。protobuf 是以二进制方式存储的,占用空间小,但也带来了可读性差的缺点。protobuf 在通信协议和数据存储等领域应用广泛。例如著名的分布式缓存工具 Memcached 的 Go 语言版本groupcache 就使用了 protobuf 作为其 RPC 数据格式。

Go Protobuf 简明教程

4.1 安装

protoc 安装: Protobuf Releases 下载。

protoc-gen-go,这个工具用来将 .proto 文件转换为 Golang 代码。

4.2 消息类型-message

repeated字段可重复,即用来表示 Go 语言中的数组类型。
rese字段/标识符保留(reserved),加载老版本的数据时,不会造成数据冲突,
proto类型go类型备注proto类型go类型备注
doublefloat64floatfloat32
int32int32int64int64
uint32uint32uint64uint64
sint32int32适合负数sint64int64适合负数
fixed32uint32固长编码,适合大于2^28的值fixed64uint64固长编码,适合大于2^56的值
sfixed32int32固长编码sfixed64int64固长编码
boolboolstringstringUTF8 编码,长度不超过 2^32
bytes[]byte任意字节序列,长度不超过 2^32
enum枚举类型
google.protobuf.Any任何类型
oneof可以内嵌
mapgo语言中的映射

4.3 服务类型-service

可以在 .proto 文件中定义 RPC 服务接口

syntax = "proto3";
package main;

// this is a comment
message StudentRequest {
  string name = 1;
  bool male = 2;
  repeated int32 scores = 3;
}
message StudentResponse {
  string name = 1;
  bool male = 2;
  repeated int32 scores = 3;
}

service SearchService {
  rpc Search (StudentRequest) returns (StudentResponse);
}

5. RPC

远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议

rpc

6. Gee教程(rpc-go教程)

7天用Go从零实现Web框架Gee教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值