Golang
文章平均质量分 69
rayylee
awk 'BEGIN{O="o"~"o";o="O"=="O";O+=+o;o_+=o""o;for(;++_o!=o_-O;)O_=O_"%c";printf(O_,o_*(o_-o)+O+O,o_*(o_-O)-O,o_*o_,o_*o_,o_*(o_-o)-O,o_*(o_-O)+O,o_*(o_-O)+O,o_-o)}'
展开
-
三款Go Playground分享
曾几何时,语言的在线运行(Playground)似乎成了标配。确实,Playground 能够让我们可以快速试验一些想法。Go 语言在发布之初就提供了一个,这就是 https://play.golang.org。然而,由于众所周知的原因,我们访问不了。为了方便国内广大 gopher,我搞了一个国内镜像:https://play.studygolang.com,尽情使用、分享吧。1.官方的 Playground不得不说,Go 官方的 Playground 真的比较原始。提供的功能比较少,主要有:格式原创 2022-04-25 14:10:04 · 1469 阅读 · 0 评论 -
基于DDD的golang实现
DDD即领域驱动设计,该模式也算是比较热门的话题了。领域驱动设计(DDD)是一种软件开发方法,通过将实现与不断演变的模型相连接,简化了开发人员面临的复杂性。本文不会重点去解释Golang中实现DDD的相关理念。什么是DDD?以下是考虑使用DDD的原因:提供解决困难问题的原则和模式将复杂的设计基于领域模型在技术和领域专家之间发起创造性的协作,以迭代地完善解决领域问题的概念模型DDD包含4个层:Domain:这是定义应用程序的域和业务逻辑的地方Infrastructure:此层包含独立原创 2021-07-12 10:10:05 · 710 阅读 · 0 评论 -
Golang语言slice实现原理及使用方法
1. Slice实现原理Slice依托数组实现,底层数组对用户屏蔽,在底层数组容量不足时可以实现自动重分配并生成新的Slice。 接下来按照实际使用场景分别介绍其实现机制。源码包中src/runtime/slice.go:slice定义了Slice的数据结构:type slice struct { array unsafe.Pointer len int cap int}从数据结构看Slice很清晰, array指针指向底层数组,len表示切片长度,cap表示底层翻译 2020-08-08 18:00:44 · 1164 阅读 · 0 评论 -
golang中new、make及取地址符(&)
new简介及使用方式new() 用于返回类型指针,这个操作:分两步,第一步:初始化一个变量为零的值,第二步:生成一个指向类型变量的地址。&Type 返回类型变量的地址,这个操作:分两步,第一步:初始化一个变量(变量值可以不为零)的值,第二步:生成类型变量的地址并返回。相同点和不同点:都是返回指向变量的地址new()不支持初始化变量的值(默认值都是零),&Type支持初始化自定义变量的值使用方式:type SyncedBuffer struct { str strin原创 2020-07-11 22:03:12 · 4071 阅读 · 0 评论 -
linux下golang编译环境搭建
1. 设置GOPATH及PATH修改 ~/.bash_profileexport GOPATH=/usr/local/gopathPATH="$GOPATH/bin:$PATH"export PATH2. 配置代理修改 ~/.bash_profileexport GOPROXY=https://goproxy.io3. 安装golang工具go install github.com/Go-zh/tools/cmd/goplsgo install github.com/Go-zh/to原创 2020-09-19 10:29:38 · 748 阅读 · 0 评论 -
Golang中Goroutine与线程
我们在使用Go语言进行开发时,一般会使用goroutine来处理并发任务。那么大家有没有考虑过goroutine的实现机制是什么样的?很多同学会把goroutine与线程等同起来,但是实际上并不是这样的。在这边文章中,我们将介绍以下内容:什么是goroutine?Goroutine与线程的区别Goroutine是如何调度的1. 什么是goroutine?Goroutine是建立在线程之上的轻量级的抽象。它允许我们以非常低的代价在同一个地址空间中并行地执行多个函数或者方法。相比于线程,它的创建和翻译 2020-06-09 11:19:29 · 457 阅读 · 0 评论 -
golang dlv 远程调试
1. 服务端服务器命令行输入:# dlv --headless --log --listen=:8181 attach $(pidof <server>)2. 调试机在调试机上准备好源码,执行:#原创 2021-01-06 16:10:40 · 1201 阅读 · 0 评论 -
golang开发效率神器汇总
neon 是鹅厂的一位资深后台开发工程师,多年工作下来他总结了很多效率神器,今天分享给大家。一. 开发工具1)sql2go用于将 sql 语句转换为 golang 的 struct. 使用 ddl 语句即可。例如对于创建表的语句: show create table xxx. 将输出的语句,直接粘贴进去就行。http://stming.cn/tool/sql2go.html...转载 2019-11-29 19:52:53 · 1252 阅读 · 0 评论 -
Golang并发读取超大文件
当今世界的任何计算机系统每天都会生成大量的日志或数据。随着系统的发展,将调试数据存储到数据库中是不可行的,因为它们是不可变的,并且只能用于分析和解决故障。所以大部分公司倾向于将日志存储在文件中,而这些文件通常位于本地磁盘中。我们将使用Go语言,从一个大小为16GB的.txt或.log文件中提取日志。让我们开始编码……首先,我们打开文件。对于任何文件的IO,我们都将使用标准的Go库os.File。f, err := os.Open(fileName) if err != nil { fmt.P原创 2021-06-03 09:36:51 · 4930 阅读 · 3 评论