因为之前命令行参数是同过os.Args[1]来获取,感觉不太科学也不美观,所以今天改用flag去获取。 原始代码如下: func GetRuntimePath() string { var spath string fl…
标签:go
Go 译文之通过 context 实现并发控制
作者:Sameer Ajmani | 地址:blog.golang.org/context 译者前言 第二篇官方博客的翻译,主要是关于 Go 并发控制的 context 包。 总体来说,我认为上一篇才是 Go 并发的基础…
golang 数据结构
golang 常用数据结构 struct array slice map struct 基本用法 // 定义结构体 type Person struct { Name string Age int } // 结构体值接收…
Blog.5 Go Module
这世上太多的人,宁愿吃生活苦,也不愿吃自律的苦。大概是因为生活的苦,躺着就来了,而自律的苦,得自己去找。但只有吃得下自律的苦,才有成功的自由,没有一种成功是走得了捷径的,通向真正成功的唯一道路只有自律。越成功,越自律。越…
源码剖析golang中sync.Mutex
go语言以并发作为其特性之一,并发必然会带来对于资源的竞争,这时候我们就需要使用go提供的sync.Mutex这把互斥锁来保证临界资源的访问互斥。 既然经常会用这把锁,那么了解一下其内部实现,就能了解这把锁适用什么场景,…
go语言数值类型及布尔类型
常量 常量声明常量是程序在编译时就确定的值,程序在执行时不能修改常量的值。声明常量使用关键字const。在声明常量时,需要对常量赋值。const 名称 类型 = 值 或const 名称 = 值 自动做类型推断 const…
go程序调试
调试程序是程序猿的一项必备技能,有多种手段来调试程序,如打印控制台输出,查看日志,以及设置断点,使用debug做单步跟踪进去调试。这篇文章主要从go使用debug为题进行展开。 GDB 介绍GDB是GNU开源组织发布的一…
使用sublime打造go语言的开发环境
工欲善其事,必先利其器。作为一个码农,编辑器是我们每天用的最多的工具。那么怎么构建一个go语言环境的编辑器呢?因为习惯轻量的sublime,不太喜欢繁重的IDE,就将自己的sublime编辑器打造为适合go语言开发的ID…
go语言环境搭建
安装 软件的安装常用三种方式1. 在线安装这种安装方式是通过系统提供的安装工具,自动下载安装包,并自动安装到系统的固定目录下2. 离线二进制安装通过手动下载官方提供编译好的二进制执行程序压缩包,在本地手动的解压到指定的目…
由一个问题引发对文件描述符的研究
故事的起因 一次一个同事给我发了一段简单的代码,问我这段代码有什么问题? package main import ( "fmt" "os" ) func main() { f, err := os.Open("/test…
go:linkname的用法
go:linkname的用法 在go语言的源码中,会发现很多,代码只有函数签名,却看不到函数体,如: // src/os/proc.go 68行 func runtime_beforeExit() // implemen…
GO TESTING;HOW,WHAT,WHY
Introduction 关于 Go 测试,我们应该知道测试方式(或者说测试手段)、测试对象及测试原因。 How 测试方式 测试实现 举个例子。针对字符串分割函数(如下),实现单元测试。 package goTest i…