随笔分类 - GO
go学习
摘要:Encode 将一个对象编码成JSON数据,接受一个interface{}对象,返回[]byte和error: func Marshal(v interface{}) ([]byte, error) Marshal函数将会递归遍历整个对象,依次按成员类型对这个对象进行编码,类型转换规则如下: boo
阅读全文
摘要:现在就开始你的Go语言学习之旅吧!人生苦短,let’s Go. 指针是一个代表着某个内存地址的值, 这个内存地址往往是在内存中存储的另一个变量的值的起始位置. Go语言对指针的支持介于Java语言和 C/C++ 语言之间, 它既没有像Java那样取消了代码对指针的直接操作的能力, 也避免了 C/C+
阅读全文
摘要:最近读到一篇关于 Go 反射的文章,作者通过反射给结构体填充字段值的案例,充分利用 Go 的各种内在机理,逐步探讨让代码运行得更快的姿势。 文章(原文地址:https://philpearl.github.io/post/aintnecessarilyslow/)非常有学习价值,故翻译整理了下来。
阅读全文
摘要:我想起了我刚工作的时候,第一次接触RPC协议,当时就很懵,我HTTP协议用的好好的,为什么还要用RPC协议? 于是就到网上去搜。 不少解释显得非常官方,我相信大家在各种平台上也都看到过,解释了又好像没解释,都在用一个我们不认识的概念去解释另外一个我们不认识的概念,懂的人不需要看,不懂的人看了还是不懂
阅读全文
摘要:在刚使用 Go 时,菜刀曾将 Python 深拷贝手法[:]用于 Go 中 ,结果造成了 bug。相信不少转语言的 Gopher 也在切片拷贝上栽过跟头。 切片是 Go 中最基础的数据结构,之前我们谈过切片传递、切换转换、切片扩容等内容。 本文,我们将探讨切片拷贝,就切片的三种拷贝方式进行图解分析,
阅读全文
摘要:01 介绍 Go 语言中函数的最后一个参数可以是变长参数,细心的读者朋友们可能已经发现,在 Go 语言标准库 fmt包中就有使用变长参数函数,比如 Println 和 Printf。 我们在使用 Go 语言开发应用程序时,也可以在合适的场景使用变长参数函数,使我们的代码更优雅。 02 变长参数 顾名
阅读全文
摘要:POST JSON func main() { url := "http://restapi3.apiary.io/notes" fmt.Println("URL:>", url) //也可以使用marshall 一个struc map array .... var jsonStr = []byte
阅读全文
摘要:咱们说回 Go ,切片用的时候还得担心会不会切换底层数组,切片的诡异(仅对刚接触Go的人来说,用多了大家都被坑成专家了)现象,咱们以前聊过。以及一朝被蛇咬,连使用 Map 都得担心下底层数据结构之类的会不会指针又又又变了,答案在这里我不告诉你们,回头看这个复习去吧 Go 函数的 Map 型参数,会发
阅读全文
摘要:今天给大家分享一个实际踩坑的一个示例,以为的 nil 并不是 nil。众所周知,Go 编程中 nil 值的判断可谓是随处可见: v := findSomething()if v != nil { // do something} nil 值究竟是什么?这个在之前的文章也分析过( 深度剖析 Go 的
阅读全文
摘要:日志无论对于程序还是程序员都非常重要,有多重要呢,想要长期在公司健健康康的干下去就得学会阶段性划水,阶段性划水的一大关键的就是干活快过预期但是装作。。。不对,这个开头不对劲,下面重来。日志无论对于程序还是程序员都非常重要,程序员解决问题的快慢除了经验外,就是看日志能不能有效地记录问题发生的现场以及上
阅读全文
摘要:gnet 高性能和轻量级网络库 https://gnet.host/docs/quickstart/ 软件首页 软件文档 官方下载 极速下载 概览 资讯 博客 问答 软件简介 gnet 是一个基于事件驱动的高性能和轻量级网络框架。它直接使用 epoll 和 kqueue 系统调用而非标准 Golan
阅读全文
摘要:一. 开发工具 1)sql2go用于将 sql 语句转换为 golang 的 struct. 使用 ddl 语句即可。例如对于创建表的语句: show create table xxx. 将输出的语句,直接粘贴进去就行。http://stming.cn/tool/sql2go.html https:
阅读全文
摘要:容器的本质 容器是一种轻量级的操作系统层面的虚拟化技术。 重点是 “操作系统层面” ,即容器本质上是利用操作系统提供的功能来实现虚拟化。 容器技术的代表之作 Docker ,则是一个基于 Linux 操作系统,使用 Go 语言编写,调用了 Linux Kernel 功能的虚拟化工具。 网管叨bi叨
阅读全文
摘要:本系列计划用三篇文章来写:bufio包中的读取原理、bufio包中的写入原理以及使用bufio高效读取的示例。今天跟大家分享第一篇读取原理。 01 Go中普通的文件读写 首先我们来看看在Go中对文件的普通读取方式是怎么样的。下面是普通的读取文件内容的示例代码: package mainimport
阅读全文
摘要:推荐几个查看 Go 汇编源码的工具使用技巧 今天介绍几个常用的查看 Go 汇编代码、调试 Go 程序的命令和工具,既可以在平时和同事、网友抬杠时使用,还能在关键时刻打他们的脸。 比如,有同事说这段代码: package maintype Student struct { Class int}func
阅读全文
摘要:package main import ( "fmt" _ "github.com/jinzhu/gorm/dialects/mysql" "github.com/jinzhu/gorm" "time") var ( //变量db 通过init直接初始化 db *gorm.DB err error
阅读全文
摘要:1.23 KB package model import ( "database/sql/driver" "encoding/json" "fmt" ) type JsonArrayUint []uint func (o JsonArrayUint) Value() (driver.Value, e
阅读全文
摘要:https://mp.weixin.qq.com/s/OUChAUW8noDhDbCFskLV5A 本文我们详细聊一下Go语言的原子操作的用法,啥是原子操作呢?顾名思义,原子操作就是具备原子性的操作... 是不是感觉说了跟没说一样,原子性的解释如下: 一个或者多个操作在 CPU 执行的过程中不被中断
阅读全文

浙公网安备 33010602011771号