golang
文章平均质量分 70
yuanlulu
做过嵌入式Linux开发、深度学习平台开发。擅长c++和python。
展开
-
在windows上交叉编译ARM(鸿蒙3.10)的golang可执行程序
基础环境手上有一个TB-RK3568x的ARM开发板,烧写的是鸿蒙3.10的系统,Linux内核是5.10的。开发板信息:# cat /proc/versionLinux version 5.10.79 (yuanll@yuanll-dev-pc) (aarch64-linux-gnu-gcc (Linaro GCC 7.5-2019.12) 7.5.0, GNU ld (Linaro_Binutils-2019.12) 2.28.2.20170706) #21 SMP Mon Apr 25 20:原创 2022-05-13 19:54:54 · 1980 阅读 · 0 评论 -
golang学习7:编译为可被C语言调用的库
说明在使用 go build 或 go install 两个命令编译代码的时候,可以使用-buildmode指定生成什么样的文件。go build -buildmode=<mode>或者go install -buildmode=<mode>使用 go help buildmode可以查看所有支持的buildmode选项。 -buildmode=archive Build the listed non-main packa原创 2021-09-27 00:44:09 · 2353 阅读 · 1 评论 -
golang学习6:访问redis
Redis介绍Redis是一个开源的内存数据库。特点就是快。所以经常用来做数据库的缓存。当然它的用途不止这些。下面摘抄下李文周博客对redis用途的一些举例:缓存系统,减轻主数据库(MySQL)的压力。计数场景,比如微博、抖音中的关注数和粉丝数。热门排行榜,需要排序的场景特别适合使用ZSET。利用LIST可以实现队列的功能Redis支持的数据结构中常用的是string、hash、lists、sets和sorted sets。另外它还支持发布/订阅模式,以及stream模式。除了单例模式,原创 2021-09-10 23:31:48 · 364 阅读 · 0 评论 -
golang学习5:gRPC
说明GRPC是一个高性能、通用的开源RPC框架,基于HTTP/2协议标准和Protobuf序列化协议开发,支持众多的开发语言。安装依赖包go get golang.org/x/net/contextgo get google.golang.org/grpcgo get google.golang.org/protobuf/reflect/protoreflectgo get google.golang.org/protobuf/runtime/protoimpl编写IDL生成go代码参考李原创 2021-04-07 22:56:50 · 426 阅读 · 0 评论 -
golang学习4:Protobuf
说明Protobuf是Protocol Buffer的简称,它是Google公司于2008年开源的一种高效的平台无关、语言无关、可扩展的数据格式,目前Protobuf作为接口规范的描述语言,可以作为Go语言RPC接口的基础工具。既然语言无关,那么怎么描述我们的数据的各个字段呢?编码和解码怎么弄呢,手工写很头大啊?第一个问题的答案就是使用一种语言无关的IDL脚本语言来定义数据格式,具体见《Protobuf3 语法指南》。第二个问题的答案就是用一个工具作为中介,使用IDL为各种语言生成编码解码的源码,原创 2021-04-04 21:23:10 · 1895 阅读 · 0 评论 -
golang学习3:标准库中的rpc
RPCRPC是Remote Procedure Call Protocol三个单词首字母的缩写,翻译过来叫远程过程调用协议。故明思议,也就是在本地调用远程的函数,这里的远程是相对于本地函数调用来讲的。既然是远程了,一般就需要使用网络通信,客户端把要调用的方法和参数传过去,传过去之前这些参数要进行序列化从而转化为适合网络传输的格式,而服务端接收后需要进行相反的解码动作,也就是反序列化,从而得到程序使用的格式。处理后,返回的结果同样先序列化再反序列化传回给客户端,从而完成一次交互。逻辑上讲于本地调用无异原创 2021-04-03 21:19:11 · 489 阅读 · 0 评论 -
golang学习2:使用package和module
说明我因为是golang的新手,而golang的包管理之前经过很多变化,我也不是很明白。go1.11发布了官方的包管理工具 Go Module, 从 Go 1.13 开始,Module模式将成为默认模式。所以这就变成了golang标准的包管理工具。我自己根据自己想到的情况摸索下使用方法。package和module的概念package(包)类似于c++的命名空间,每个package可以有多个源码文件,但是必须位于同一层目录。package内可以有子目录,只不过子目录下就是另一个package的源码原创 2021-03-21 18:34:18 · 1738 阅读 · 0 评论 -
golang学习1:ubuntu下安装golang并简单测试
0. 说明我也是自学golang,周围没氛围,完全新手。从今天起开始分享学习golang的过程吧。1. 下载安装包到https://golang.google.cn/dl/,选择Linux的版本2. 拷贝到/usr/local解压$ cp go1.16.linux-amd64.tar.gz /usr/local$ cd /usr/local$ tar -xvf go1.16.linux-amd64.tar.gz3. 设置环境变量先创建/home/yuanll/gopath,然后在~/.b原创 2021-02-21 22:11:49 · 887 阅读 · 0 评论