【GO 学习笔记(四)struct 结构、slice】教程文章相关的互联网学习教程文章

Go+Python双语言混合开发 第三部分 Go开发学习 第5章 protobuf3和grpc进阶 学习笔记【代码】

Go+Python双语言混合开发 第三部分 Go开发学习 第5章 protobuf3和grpc进阶 学习笔记 第5章 protobuf3和grpc进阶 protobuf 官方文档参考 官方地址: https://developers.google.com/protocol-buffers/docs/proto3 5.1 定义一个消息类型 先来看一个非常简单的例子。假设你想定义一个“搜索请求”的消息格式,每一个请求含有一个查询字符串、你感兴趣的查询结果所在的页数,以及每一页多少条查询结果。可以采用如下的方式来定义消息类...

Go+Python双语言混合开发 第三部分 Go开发学习 第4章 grpc入门 学习笔记【代码】

Go+Python双语言混合开发 第三部分 Go开发学习 第4章 grpc入门 学习笔记 第4章 grpc入门 4.1 什么是grpc和protobuf grpc gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go. 其中 C 版本支持 C, C++, Node.js, Python, Ruby, Objective-C, PHP 和 C# 支持. 链接 protobuf java中的dubbo dubbo/rmi/hessian messagepack 如果你懂了协议完全有...

go 学习笔记之万万没想到宠物店竟然催生出面向接口编程?【图】

到底是要猫还是要狗 在上篇文章中,我们编撰了一则简短的小故事用于讲解了什么是面向对象的继承特性以及 Go 语言是如何实现这种继承语义的,这一节我们将继续探讨新的场景,希望能顺便讲解面向对象的接口概念. 为了照顾到没有看过上一节文章的读取,这里再简述一下上节文章关于买宠物的故事,如需详细了解,请自行翻阅历史文章进行查看. A: 猫是一种宠物,淘气可爱会卖萌,看家本领抓老鼠,偶尔还会喵喵喵. B: 狗是一种宠物,忠实听话能看家,...

GO语言学习笔记(三)初写GO程序【代码】【图】

一、第一个程序名称:helloworld.go package main import "fmt" func main() {fmt.Println("hello world!") } 知识点1:Go语言的代码文件一般是以.go作为后缀。 运行helloworld.go执行:go run helloworld.go输出结果:hello world!知识点2:使用run参数的意思是编译并运行。 编译成二进制文件执行:go build -o helloworld helloworld.go执行:ls查看helloworld helloworld.go在当前目录下会产生一个helloworld的二进制文件,我...

[Golang学习笔记] 06 程序实体3 类型断言和类型转换【代码】【图】

类型断言: 语法:<目标类型的值>,<布尔参数> := <表达式>.( 目标类型 ) // 安全类型断言<目标类型的值> := <表达式>.( 目标类型 )  //非安全类型断言 x.(T),这里x表示一个接口的类型,T表示一个类型(也可为接口类型)。一个类型断言检查一个接口对象x的动态类型是否和断言的类型T匹配。 类型断言分两种情况:第一种,如果断言的类型T是一个具体类型,类型断言x.(T)就检查x的动态类型是否和T的类型相同。 如果这个检查成功了,...

GO学习笔记——面向对象编程之结构体(15)

GO是支持面向对象编程的,但是面向对象的三大特性:封装,继承,多态,GO只支持封装,并不支持继承和多态。学过C++的有没有感觉在学继承和多态的时候特别复杂麻烦,那些对象模型特别容易搞混。所以这样设计也是极好的,简化了语言。继承和多态这些功能GO是通过接口来实现的,这在后续会讲到。 也是为了简化,GO中只有struct,没有class,也就是说,GO是通过结构体来实现面向对象的,而不是通过类。 所以,面向对象编程,我们先从结...

Go语言学习笔记(4)——并发编程【代码】

Golang在语言级别支持了协程,由runtime进行管理。 在Golang中并发执行某个函数非常简单:func Add(x, y int) {fmt.Println(x + y) }func RunRoutine() {for i := 0; i < 10; i++ {go Add(i, i)} }但是输出为空。 因为虽然新建了协程调用Add函数,但是该协程还没有来得及执行,程序就结束了。所以输出为空。 如果想让代码按预想的方式运行,就需要让主函数等待所有goroutine退出后再结束。这就引出了goroutine间通信的问题。 首先,...

《Golang 学习笔记》— 从零开始搭建Go语言开发环境【代码】【图】

从零开始搭建Go语言开发环境 下载 下载地址 Go官网下载地址:https://golang.org/dl/ Go官方镜像站(推荐):https://golang.google.cn/dl/ 版本的选择 Windows平台和Mac平台推荐下载可执行文件版,Linux平台下载压缩文件版。安装 Windows安装 此安装实例以 64位Win10系统安装 Go1.11.5可执行文件版本为例。 将上一步选好的安装包下载到本地。 双击下载好的文件Linux下安装 我们在版本选择页面选择并下载好go1.11.5.linux-amd64.ta...

Go 学习笔记(79)— Go 标准库 net(获取本机IP地址)【代码】

1. 获取本机 IP 地址 package mainimport ("fmt""net" )// 获取本机网卡IP func getLocalIP() (ipv4 string, err error) {// var (// addrs []net.Addr// addr net.Addr// ipNet *net.IPNet // IP地址// isIpNet bool// )// 获取所有网卡addrs, err := net.InterfaceAddrs()if err != nil {return}// 取第一个非lo的网卡IPfor _, addr := range addrs {// 这个网络地址是IP地址: ipv4, ipv6ipNet, isIpNet := addr.(*net.IPNet...

go学习笔记(一):go语言开发环境搭建【图】

最近开始接触go语言,先搭建一套开发环境。1.进入go官方网站,https://golang.org/,国内有些网络可能不能访问,如果打不开,访问go语言中文网https://studygolang.com/dl我的开发环境是windows,下载windows安装包,如下图所示:2.软件100多M,下载完成后直接打开。点击next选择I accept ...,继续点击next,我选择安装在D盘,继续点击next,点击Install,等待几分钟,最后点击Finish,完成。3.打开IDEA,点击右上角File->Settings...

go学习笔记(二):go语言工作区介绍【图】

上篇文章介绍了go语言开发环境的搭建,本文介绍一下go语言的工作区。在go语言的环境搭建过程中,需要了解3个环境变量:1)GOROOT:go语言安装的根目录,上篇文章中:D:\Program Files\go2)GOPATH:自己定义的工作空间3)GOBIN:生成的可执行文件的路径GOPATH是最复杂的一个环境变量。GOPATH是多个工作区的目录路径。这些路径存放go语言的源码文件、归档文件和编译后的可执行文件。要理解这个概念,就需要理解下面的3个知识:1.源码组织...

【golang学习笔记】数组【代码】

目录创建数组数组作为函数的参数二维数组数组元素是struct 创建数组 创建数组的语法: var 数组名 [数组长度]数据类型 // 或 数组名 := [数组长度]数据类型{数组值}数组一旦定义,即使没有初始化复制,每个元素也会自动初始化为零值示例代码01:package main import "fmt"func main() {var arrName [3]stringfmt.Printf("%#v", arrName)fmt.Println()arrName[0] = "Hello"arrName[1] = ","arrName[2] = "go"fmt.Println(arrName)//...

【golang学习笔记】切片【代码】

目录切片的内部实现切片的切割切片的扩容切片作为函数的参数 切片的内部实现 切片可以理解为动态长度的数组。 切片的内部实现是由3部分构成:指向底层数组的指针 长度:当前元素的个数,可以用len函数来获取 容量:最大存储空间的个数,可以用cap函数来获取定义切片的基本语法为: var 切片名 []数据类型切片只定义的话是无法使用的,还需要用make内置函数进行初始化才能进行数据的存取。切片定义和初始化更简洁的语法为: slicena...

第02部分 Go开发学习 第5章 字符串的基本操作 学习笔记【图】

第5章 字符串的基本操作 5.1 转义符 最后附上视频下载地址 百度网盘下载地址: 链接: https://pan.baidu.com/s/1z54qp2yO-2RYyJrZ_Ovgbg 密码: 6dl0 –来自百度网盘超级会员V3的分享 转义符 转义字符意义ASCII码值(十进制)\n换行(LF) ,将当前位置移到下一行开头010\r回车(CR) ,将当前位置移到本行开头013\t水平制表(HT) (跳到下一个TAB位置)009\代表一个反斜线字符’’’092’代表一个单引号(撇号)字符039"代表一个双引号...

Go语言学习笔记4【代码】

3.Go语言数据类型 这是接着Go语言学习笔记3讲的一篇,还是主要介绍Go语言数据类型。主要如下: 3.5 函数和方法 在Go语言中,函数类型是一等类型,可以把函数当做一个值来传递和使用。函数类型的值(简称为函数值)既可以作为其他函数的参数,也可以作为其他函数的结果(之一)。 3.5.1 类型表示法 函数类型指代了所有可以接受若干参数并能够返回若干结果的函数。 声明一个函数类型总会以关键字 func 作为开始,紧跟在关键字 func ...