-
golang 数据二 (切片)
所属栏目:[大数据] 日期:2020-12-16 热度:162
在项目开发过程中,更多的场景是需要一个长度可以动态更新的数据存储结构,切片本身并非是动态数组或数组指针,他内部通过指针引用底层数组,并设定相关属性将数据读写操作限定在指定区域内。比如: /runtime/slice.gotypeslicestruct{arrayunsafe.Pointerle[详细]
-
[golang]time.After 在select中使用的正确姿势(解决超时逻辑未
所属栏目:[大数据] 日期:2020-12-16 热度:136
前言 select 的语法如下所示 每个 case 都必须是一个通信所有channel表达式都会被求值所有被发送的表达式都会被求值如果任意某个通信可以进行,它就执行;其他被忽略。如果有多个 case 都可以运行, Select 会随机公平地选出一个执行。其他不会执行。 否则:[详细]
-
vs code golang插件记录
所属栏目:[大数据] 日期:2020-12-16 热度:71
首先推荐一下两个网址: 比较不错的博客:http://www.cnblogs.com/zsy/p/5223957.html 在下载代码时,golang.org/x/tools代码下载不了,可以使用 http://www.golangtc.com/download/package解决 ==========================================================[详细]
-
Defer, Panic, and Recover
所属栏目:[大数据] 日期:2020-12-16 热度:172
工作之后两年多没写过博客了,给自己找了一个忙的借口,快过年了,有点时间,最近学习go语言,习惯于学习官方文档,发现 https://blog.golang.org/defer-panic-and-recover 这篇文章没有翻译版本,可能会延长学习的时间成本,就翻译了一下,翻译的不妥请大家[详细]
-
Golang 开发环境搭建
所属栏目:[大数据] 日期:2020-12-16 热度:113
Golang 是 Google 发布的开发语言,Go 编译的程序速度可以媲美 C/C++。 安装 sudo apt-get install golangsudo apt-get install golang-go.tools 使用 编译运行程序 go run main.go 查看命令文档 godoc fmt Println Demo package mainimport "fmt"func main([详细]
-
Go的内存模型
所属栏目:[大数据] 日期:2020-12-16 热度:53
转载请注明出处,原文链接http://tailnode.tk/2017/01/Go... 说明 翻译自The Go Memory Model 介绍 如何保证在一个goroutine中看到在另一个goroutine修改的变量的值,这篇文章进行了详细说明。 建议 如果程序中修改数据时有其他goroutine同时读取,那么必须[详细]
-
Go 1.8rc3 源代码学习:从源代码编译 go
所属栏目:[大数据] 日期:2020-12-16 热度:77
前言 go 官方文档 Installing Go from source详细说明了如何从 GitHub 源代码编译和安装 go 下载源代码 # git clone https://github.com/golang/go 构建 # export GOROOT_BOOTSTRAP=/usr/local/go# src/all.bash 注:设置环境变量 GOROOT_BOOTSTRAP 总结[详细]
-
GOlang中对flag.Prase()的疑问
所属栏目:[大数据] 日期:2020-12-16 热度:177
最近在学习Golang中的flag库的使用,遇到了如下代码: import "fmt" var infile *string = flag.String("i","infile","File contains values for sorting") var outfile *string = flag.String("o","outfile","File to receive sorted values") var algorith[详细]
-
go环境安装
所属栏目:[大数据] 日期:2020-12-16 热度:101
今天年后第一天上班,晚上了也没啥事儿,突然想起来刚开始安装go环境的时候被一个go官方推荐的中文文档( https://go-zh.org/doc/install)给恶心了,这里简单写一下过程,就不翻译官方文档了: https://golang.org/dl/ 这个地址下载一个安装包,我是linux环[详细]
-
golang strings包
所属栏目:[大数据] 日期:2020-12-16 热度:186
packagemainimport("fmt""strings")funcmain(){varsayHistring="Hello"//定义字符串并赋值fmt.Println(sayHi+"World")//字符串拼接fmt.Println(len(sayHi))//len显示字符串长度fmt.Println(sayHi[0])//显示第一个字符的asic码fmt.Println(string(sayHi[0]))/[详细]
-
给自己一条退路,再次比较Erlang和Golang
所属栏目:[大数据] 日期:2020-12-16 热度:94
http://blog.sina.com.cn/s/blog_6e1bd8350102uwgl.html 给自己一条退路,再次比较 Erlang 和 Golang 2014-6-28 陈叶皓 chenyehao@gmail.com 雨天的周末,适合码字的时节。。。 一年前我开始学习 go 语言的时候,如获至宝,既有 python 的编码效率,又带来性[详细]
-
golang 条件语句和循环语句
所属栏目:[大数据] 日期:2020-12-16 热度:184
golang的条件语句: packagemainimport("fmt")funcmain(){age:=18//ifelseifelse语句ifage==18{fmt.Println("yourageis18")}elseifage18{fmt.Println("yourageisbiggerthan18")}else{fmt.Println("yourageissmallerthan18")}//swith语句匹配一个就退出switch[详细]
-
Golang1.7.4标准库sql使用
所属栏目:[大数据] 日期:2020-12-16 热度:179
package main import ( "database/sql" "errors" "fmt" "net" "sync/atomic" "time" "github.com/go-sql-driver/mysql" ) func main() {} //新建mysql连接,connstr为mysql连接串"root:123456@tcp(172.18.80.211:3306)/workstacks?charset=utf8" //maxopen为[详细]
-
golang 数组切片和字典
所属栏目:[大数据] 日期:2020-12-16 热度:65
golang语言的数组 切片和字典 packagemainimport("fmt")funcmain(){vara[10]int//定义一个数字长度为10,存储int类型a[0]=10//存储a[1]=20a[2]=30a[3]=40fmt.Println(a[0],a[1],a[2],a[3])//通过序列打印fmt.Println(a)//打印整个数组,因为定义长度为10,而[详细]
-
golang 数据三 (字典)
所属栏目:[大数据] 日期:2020-12-16 热度:166
golang基本数据结构Map也叫字典,字典的声明格式如下: map[KeyType]ValueType 字典是无序键值对集合,字典要求KeyType必须是支持相等运算符(==,!=)的数据类型,比如:数字、字符串、指针、数组、结构体以及对应的接口类型,而ValueType可以是任意类型,字典[详细]
-
Golang RPC调用例子程序(实现超时机制)
所属栏目:[大数据] 日期:2020-12-16 热度:179
package mainimport ( "fmt" "log" "net" "net/rpc" "time" )func main() { log .SetFlags (log .Lshortfile | log .Lmicroseconds ) log .Println ( "=======begin====== " ) testRpc() time .Sleep (time .Second * 2 ) log .Println ( "=======end======[详细]
-
GB(一)
所属栏目:[大数据] 日期:2020-12-16 热度:172
gb go语言基于项目的编译工具 1. 安装 1.1 约束 gb 依赖Go1.4以上版本 1.2 安装 通过以下命令安装 go get github.com/constabulary/gb... 1.3 升级 gb 依然处于开发状态,通过以下命令升级到最新版本 go get -u github.com/constabulary/gb/... 1.4 多版本go[详细]
-
golang之runtime.SetFinalizer
所属栏目:[大数据] 日期:2020-12-16 热度:95
在实际的编程中,我们都希望每个对象释放时执行一个方法,在该方法内执行一些计数、释放或特定的要求,以往都是在对象指针置nil前调用一个特定的方法,golang提供了runtime.SetFinalizer函数,当GC准备释放对象时,会回调该函数指定的方法,非常方便和有效。[详细]
-
Golang升级到1.7后,之前正确的函数出现错误,分析原因及解决办
所属栏目:[大数据] 日期:2020-12-16 热度:118
最近尝试把开发环境,升级到Golang1.7.1后,程序会偶发性的宕掉,查看日志后,发现总是在一个计算切片的哈希值的地方,错误信息是: unexpected fault address 0xc043df4000,fatal error: fault 在1.7之前程序持续运行2年了,从来没有出现这个问题,怀疑是G[详细]
-
golang 数据四 (结构体)
所属栏目:[大数据] 日期:2020-12-16 热度:65
结构体由一系列被称为字段的元素组成。每个字段由名称和类型组成,字段名称可以被显示命名,也可以是匿名的。在声明结构体类型时,字段名称必须唯一,可使用"_"补位,支持使用自身指针类型成员。字段名和排列顺序都属于结构体类型的组成部分,因为编译器会对[详细]
-
golang: 详解interface和nil
所属栏目:[大数据] 日期:2020-12-16 热度:173
golang的nil在概念上和其它语言的null、None、nil、NULL一样,都指代零值或空值。nil是预先说明的标识符,也即通常意义上的关键字。在golang中,nil只能赋值给指针、channel、func、interface、map或slice类型的变量。如果未遵循这个规则,则会引发panic。对[详细]
-
golang 函数一 (定义、参数、返回值)
所属栏目:[大数据] 日期:2020-12-16 热度:126
对于GoLang函数的定义或者说理解: 函数是结构化编程中最小的模块单元,日常开发过程中,将复杂的算法过程分解为若干个小任务(代码块),使程序的结构性更清晰,程序可读性提升,易于后期维护和让别人读懂你的代码。 另外为了更好的重用你的代码,可以把重复[详细]
-
golang 函数二 (匿名函数和闭包)
所属栏目:[大数据] 日期:2020-12-16 热度:106
匿名函数就是没有定义函数名称的函数。我们可以在函数内部定义匿名函数,也叫函数嵌套。 匿名函数可以直接被调用,也可以赋值给变量、作为参数或返回值。比如: funcmain(){func(sstring){//直接被调用println(s)}("hellogopher!!!")/*func(sstring){//未被[详细]
-
golang 月工作日
所属栏目:[大数据] 日期:2020-12-16 热度:166
需要引入包 "github.com/jinzhu/now" //查询一个月当中每周工作日具体日期 func WorkDayOfMonth(currentTime string ) ([] interface {}, int ) { currentDate,_ := time.Parse( "2006-01" ,currentTime) year := currentDate.Year() month,_ := strconv.Ato[详细]
-
golang 函数三 (延迟调用)
所属栏目:[大数据] 日期:2020-12-16 热度:70
Go语言提供defer关键字,用于延迟调用,延迟到当函数返回前被执行,多用于资源释放、解锁以及错误处理等操作。比如: funcmain(){f,err:=createFile("defer.txt")iferr!=nil{fmt.Println(err.Error())return}defercloseFile(f)writeFile(f)}funccreateFile(f[详细]
