-
部署Go语言程序到Linux服务器
所属栏目:[大数据] 日期:2020-12-16 热度:173
通过前面的学习相信大家对Go语言已经有了一定的了解,平时我们都是在本地进行开发调试访问的。那要怎么打包到服务器上呢?下面通过一个简单的实例来给大家介绍一下如何把我们写好的Go语言程序发布到服务 Linux 服务器上。 下面所示的是我们在 Windows 系统下[详细]
-
Go语言与C/C++进行交互
所属栏目:[大数据] 日期:2020-12-16 热度:154
Go语言是类C的语言,与C语言有着千丝万缕的联系,在Go语言的代码中可以直接调用C语言代码,但不支持直接调用 C++。 Go 调用 C/C++ 的方式: C:直接调用 C API; C++:通过实现一层封装的 C 接口来调用 C++ 接口。 调用C语言 在Go语言的源代码中直接声明C语言[详细]
-
Go语言map的多键索引——多个数值条件可以同时查询
所属栏目:[大数据] 日期:2020-12-16 热度:156
在大多数的编程语言中,映射容器的键必须以单一值存在。这种映射方法经常被用在诸如信息检索上,如根据通讯簿的名字进行检索。但随着查询条件越来越复杂,检索也会变得越发困难。下面例子中涉及通讯簿的结构,结构如下: // 人员档案type Profile struct { Na[详细]
-
Go语言垃圾回收
所属栏目:[大数据] 日期:2020-12-16 热度:158
Go语言中使用的垃圾回收使用的是标记清扫算法。进行垃圾回收时会 stoptheworld。不过在Go语言 1.3 版本中,实现了精确的垃圾回收和并行的垃圾回收,大大地提高了垃圾回收的速度,进行垃圾回收时系统并不会长时间卡[详细]
-
Go语言音乐播放器
所属栏目:[大数据] 日期:2020-12-16 热度:114
结合前面所学的知识,本节我们将设计并实现了一个音乐播放器程序。这个程序只是用于演示Go语言的特性,因此大家就不要期望能看到华丽的播放界面,听到优美的音乐。 本节我们将实现以下功能: 音乐库功能,使用者可以查看、添加和删除里面的音乐曲目; 播放音[详细]
-
Go语言哈希函数
所属栏目:[大数据] 日期:2020-12-16 热度:152
Go语言中提供了 MD5、SHA-1 等几种哈希函数,下面我们用例子做一个介绍,代码如下所示。 package mainimport ( "crypto/md5" "crypto/sha1" "fmt")func main() { TestString := "http://c.biancheng.net/golang/" Md5Inst := md5.New() Md5Inst.Write([]byte([详细]
-
Go语言实现日志系统(支持多种输出方式)
所属栏目:[大数据] 日期:2020-12-16 热度:173
日志可以用于查看和分析应用程序的运行状态。日志一般可以支持输出多种形式,如命令行、文件、网络等。 本例将搭建一个支持多种写入器的日志系统,可以自由扩展多种日志写入设备。 日志对外接口 本例中定义一个日志写入器接口(LogWriter),要求写入设备必须[详细]
-
goroutine(Go语言并发)如何使用才更加高效?
所属栏目:[大数据] 日期:2020-12-16 热度:109
Go语言原生支持并发是被众人津津乐道的特性。goroutine 早期是 Inferno 操作系统的一个试验性特性,而现在这个特性与操作系统一起,将开发变得越来越简单。 很多刚开始使用Go语言开发的人都很喜欢使用并发特性,而没有考虑并发是否真正能解决他们的问题。 了[详细]
-
Go语言关闭通道后继续使用通道
所属栏目:[大数据] 日期:2020-12-16 热度:52
通道是一个引用对象,和 map 类似。map 在没有任何外部引用时,Go语言程序在运行时(runtime)会自动对内存进行垃圾回收(Garbage Collection,GC)。类似的,通道也可以被垃圾回收,但是通道也可以被主动关闭。 格式 使用 close() 来关闭一个通道: close(ch)[详细]
-
Go语言使用空接口实现可以保存任意值的字典
所属栏目:[大数据] 日期:2020-12-16 热度:156
空接口可以保存任何类型这个特性可以方便地用于容器的设计。下面例子使用 map 和 interface{} 实现了一个字典。字典在其他语言中的功能和 map 类似,可以将任意类型的值做成键值对保存,然后进行找回、遍历操作。详细实现过程请参考下面的代码。 package main[详细]
-
Go语言加密通信
所属栏目:[大数据] 日期:2020-12-16 热度:152
一般的 HTTPS 是基于 SSL(Secure Sockets Layer)协议。SSL 是网景公司开发的位于 TCP 与 HTTP 之间的透明安全协议,通过 SSL,可以把 HTTP 包数据以非对称加密的形式往返于浏览器和站点之间,从而避免被第三方非法获[详细]
-
Go语言分布式id生成器
所属栏目:[大数据] 日期:2020-12-16 热度:63
有时我们需要能够?成类似 MySQL 自增 ID 这样不断增大,同时又不会重复的 ID。以支持业务中的?并发场景。比较典型的是电商促销时短时间内会有大量的订单涌入到系统,比如每秒 10w+。明星出轨时会有大量热情的粉丝发微博以表心意,同样会在短时间内产生大量的[详细]
-
Go语言实现RSA和AES加解密
所属栏目:[大数据] 日期:2020-12-16 热度:143
密码学里目前有两大经典算法,一个是对称加解密,其中具有代表性的是 AES 加解密;另一个是非对称加解密,其中具有代表性的是 RSA 加解密。这里就以这两个经典算法为例,简单介绍一下其在Go语言中的实现。 AES 加解密 AES 加密又分为 ECB、CBC、CFB、OFB 等几[详细]
-
Go语言RPC(模拟远程过程调用)
所属栏目:[大数据] 日期:2020-12-16 热度:70
服务器开发中会使用RPC(Remote Procedure Call,远程过程调用)简化进程间通信的过程。RPC 能有效地封装通信过程,让远程的数据收发通信过程看起来就像本地的函数调用一样。 本例中,使用通道代替 Socket 实现 RPC 的过程。客户端与服务器运行在同一个进程,[详细]
-
Go语言使用select切换协程
所属栏目:[大数据] 日期:2020-12-16 热度:129
从不同的并发执行的协程中获取值可以通过关键字 select 来完成,它和 switch 控制语句非常相似也被称作通信开关;它的行为像是“你准备好了吗”的轮询机制;select 监听进入通道的数据,也可以是用通道发送值的时候。 select { case u:= - ch1: ??? ... case[详细]
-
golang的安装环境变量配置及ide工具的简单使用
所属栏目:[大数据] 日期:2020-12-16 热度:157
golang的安装环境变量配置及ide工具的简单使用 1.Gosdk的下载地址https://www.golangtc.com/download 安装在d:/go目录下 配置GOPATH环境变量 Path中添加gopath 判断gosdk是否安装成功 2.安装git并且配置在path中,默认就勾选了 下载地址https://git-scm.com/[详细]
-
golang标准库文档
所属栏目:[大数据] 日期:2020-12-16 热度:84
Golang标准库文档 https://studygolang.com/pkgdoc ? go中文官网 https://go-zh.org/doc/ ? 《Go Web 基[详细]
-
golang 特殊知识点
所属栏目:[大数据] 日期:2020-12-16 热度:184
golang 代码不需要分号 ; 但是又会自己在底层增加 ; 号 golang的 { 左花括号必须在代码的最后一行,而不能在新的一行 golang的函数返回值,如果有多个返回值参数,还必须用 类似 (int,error) 这样的括号扩住,有点恶心; golang 代码组织里需要注意 vendor 和 int[详细]
-
golang插入排序算法
所属栏目:[大数据] 日期:2020-12-16 热度:124
插入排序算法原理: 顺序从序列中取一个数与左侧的元素们做比较,如果左侧的元素比取的数大,就向右移,直到把取的数插入到不小于左侧元素的位置处。类似于扑克牌的点数排序。 package mainimport "fmt"func main() { numbers := []int{6,2,7,3,8,5} InsertS[详细]
-
golang的reflect
所属栏目:[大数据] 日期:2020-12-16 热度:160
引用自 http://www.jb51.net/article/115002.htm ? 不同结构体字段赋值函数如下。 函数说明:传入参数from和to都是指针变量。只支持不同结构体同名且相同值类型字段赋值(可优化,加一个字段映射,并兼容int与string相互赋值)。 func CopyStruct (from,to int[详细]
-
go语言开发环境、goland、IDE
所属栏目:[大数据] 日期:2020-12-16 热度:163
1.下载: https://studygolang.com/dl 可以从这个网址下载,版本根据你的系统来: 64位系统,可以下载推荐版本: ? 我安装的是32位系统,下载的是下面这个: 如果你的是其他的系统或者版本,根据说明,选择版本就好,不要纠结哦。 ? 2.安装: 安装过程几乎都[详细]
-
七、清楚的指针
所属栏目:[大数据] 日期:2020-12-16 热度:153
Golang 的指针没有 C++ 那么复杂,指针就是指向(存储)一个变量的地址 并且 Golong 的指针不支持指针的移位 例子: package main import ( " fmt " ) func main() { var x = int ( 6 ) // 和C++一样是取地址符, *是解引用符 var p = x fmt.Println(x) fmt.[详细]
-
PouchContainer Goroutine Leak 检测实践
所属栏目:[大数据] 日期:2020-12-16 热度:103
0. 引言 PouchContainer?是阿里巴巴集团开源的一款容器运行时产品,它具备强隔离和可移植性等特点,可用来帮助企业快速实现存量业务容器化,以及提高企业内部物理资源的利用率。 PouchContainer 同时还是一款 golang 项目。在此项目中,大量运用了 goroutine[详细]
-
Golang之wait.Until 简单测试用例
所属栏目:[大数据] 日期:2020-12-16 热度:125
测试目的,验证wait.Until的用法 //测试wait.Until() 的用途package mainimport ( "fmt" "k8s.io/apimachinery/pkg/util/wait" "time")type stop struct {}func main() { stopCh := make(chan struct{}) //初始化一个计数器 i := 0 go wait.Until(func() { f[详细]
-
八、结构体和接口
所属栏目:[大数据] 日期:2020-12-16 热度:77
结构体定义: 和 C++? 一样, Golang 的结构体也是封装数据。可以说是面向对象吧。 结构体的组合函数: package main import ( "fmt" ) type Node struct { x,y int } // 结构体外接函数(能不能在结构体内写,目前还不清楚能不能在内部定义 func (node Node[详细]
