-
Golang学习笔记:语言规范二
所属栏目:[大数据] 日期:2020-12-16 热度:138
类型转换 形式为 T(x),T是一种类型,x是目标类型表达式。示例 *Point(p) // same as *(Point(p)) (*Point)(p) // p is converted to *Point - chan int (c) // same as -(chan int(c)) (- chan int )(c) // c is converted to -chan int func ()(x) // funct[详细]
-
golang多核设置
所属栏目:[大数据] 日期:2020-12-16 热度:95
单核执行如果for前面或者中间不延迟,主线程不会让出CPU,导致异步的线程无法执行, 从而无法设置flag的值,从而出现死循环 实例代码: packagemainimport("fmt""runtime"_"time")var(flag=falsestrstring)funcfoo(){flag=truestr="setupcomplete!"}funcmain[详细]
-
终于看到golang的深入解读了
所属栏目:[大数据] 日期:2020-12-16 热度:165
golang出来这么多年了,深入讲解的还是第一次看到 http://blog.jobbole.com/90574/ 这个是翻译的,原文: http://blog.altoros.com/golang-part-4-object-files-and-function-metadata.html[详细]
-
Golang Tips:传递各类型参数的空间代价
所属栏目:[大数据] 日期:2020-12-16 热度:117
函数调用时,实参的值会复制到形参。 对于int32,uint64等形如intN,uintN的类型,传递的代价是显而易见的,例如传递一个int32需要4个字节。int和uint是平台相关,均为 4字节(32位)或8字节(64位) ,uintptr与任何类型的指针都是4字节(32位)或8字节(64[详细]
-
golang.org 不能访问
所属栏目:[大数据] 日期:2020-12-16 热度:181
最近学习Go语言,使用到goclipse这个插件,需要安装 golang.org/x/tools/cmd/oracle 这个包,一直报错,安装不上。 环境:win10,64位,go1.5 安装命令:go get golang.org/x/tools/cmd/oracle,错误提示:packagegolang.org/x/tools/cmd/oracle: unrecogniz[详细]
-
golang build 编译规则
所属栏目:[大数据] 日期:2020-12-16 热度:178
注意点一、 go build 的时候会选择性地编译以系统名结尾的文件(linux、darwin、windows、freebsd)。例如Linux(Unix)系统下编译只会选择array_linux.go文件,其它系统命名后缀文件全部忽略。 注意点二、 在xxx.go文件的文件头上添加 // + build !windows (tag[详细]
-
golang实现Ringbuf
所属栏目:[大数据] 日期:2020-12-16 热度:150
Ring buffer算法优点:高内存使用率,在缓冲buffer内存模型中, 不太容易发生内存越界、悬空指针等 bug ,出了问题也容易在内存级别分析调试。做出来的系统容易保持健壮。 packagemainimport("bytes""fmt")typeRingbufstruct{buf[]bytestart,sizeint}funcNew[详细]
-
golang 数组 slice 乱序
所属栏目:[大数据] 日期:2020-12-16 热度:99
数组乱序 方法1.sliceOutOfOrder 选定随机数r 将下标r和下边i交换,i– ,就是和当前最后一位交换 方法2.rand.Perm(数组长度) 将原数组下标按照随机出来的数据赋值给另一数组 package main import "fmt" import "math/rand" import "time" var ( rr = rand.N[详细]
-
[Golang] 从零开始写Socket Server(6)【完结】:日志模块的设
所属栏目:[大数据] 日期:2020-12-16 热度:70
好久没写文章啦。。。今天把golang挖的这个坑给补完吧~ 作为一个Server,日志(Log)功能是必不可少的,一个设计良好的日志模块,不论是开发Server时的调试,还是运行时候的维护,都是非常有帮助的。 因为这里写的是一个比较简化的Server框架,因此我选择对[详细]
-
Golang 基本命令及使用
所属栏目:[大数据] 日期:2020-12-16 热度:166
之前写过一篇文章详细记录了Linux Mint 下如何搭建Golang开发环境,如果你想看看,可以点击该链接 本篇文章主要记录Go的基本命令和使用,所以,在这之前,你最好先搭建一个Go语言开发环境! 1 Go命令一般格式: go command [ arg ] 其中,command是操作命令[详细]
-
Golang import 包问题相关详解
所属栏目:[大数据] 日期:2020-12-16 热度:193
1 本地包声明 包是Go程序的基本单位,所以每个Go程序源代码的开始都是一个包声明: package pkgName 这就是包声明,pkgName 告诉编译器,当前文件属于哪个包。一个包可以对应多个*.go源文件,标记它们属于同一包的唯一依据就是这个package声明,也就是说:无[详细]
-
格鲁巴四大殊胜之Golang篇
所属栏目:[大数据] 日期:2020-12-16 热度:52
这样的比较,在于通过分析Golang的过程,引导分析理解格鲁巴的四大殊胜,因为分析的过程是类似的。 ** 这里老师也概括了菩提道次第教授的四大殊胜,那么是哪四大殊胜呢,我们一起往下看:** 第一个殊胜:通达一切圣教无违殊胜。 只要你学到朗忍,就不会产生[详细]
-
Condition variables in Golang difference between Signal and
所属栏目:[大数据] 日期:2020-12-16 热度:187
Golang 标准库中提供了sync.Mutex 用于多线程之间的同步。 同时也提供了条件变量配合Mutex结合使用。 条件变量主要的使用场景是: 当线程要执行A操作时,条件B未满足,而无法执行A操作,此时使当前线程进入睡眠状态(进入睡眠状态前会释放锁),等待条件B,[详细]
-
批量替换和转移目录的东东
所属栏目:[大数据] 日期:2020-12-16 热度:96
拷,1点半了,写太晚了。 总之是个好东东。直接上代码了,不解释。 /*批量替换和转移目录的东东 遍历指定目录(包含子目录),对于指定扩展名的文件, 查找并替换文件内容中的指定字符串,并 将其输出到新的目录(包含子目录)下。原文件内容不变。 至于其它非指[详细]
-
golang bytes buffer代码剖析
所属栏目:[大数据] 日期:2020-12-16 热度:134
//上数据结构,bytesBuffertypeBufferstruct{buf[]byte//byte切片offint//从buf[off]地址读数据,从buf[len(buf)]地址写数据runeBytes[utf8.UTFMax]byte//avoidallocationofsliceoneachWriteByteorRunebootstrap[64]byte//memorytoholdfirstslice;helpssmallb[详细]
-
golang入门-安装及环境
所属栏目:[大数据] 日期:2020-12-16 热度:143
golang官方二进制分发包包括FreeBSD,Linux,Mac OS X (Snow Leopard/Lion),and Windows等平台,包括32位、64位等版本。 我自己使用的是windows 32位分发包,MSI格式的,下载地址为: http://www.golangtc.com/download golang支持交叉编译,也就是说你在32位[详细]
-
golang 添加 gosublime
所属栏目:[大数据] 日期:2020-12-16 热度:96
1:安装golang环境 2 安装Package Control 下载Package Control.sublime-package 打开sublime ,preferences-browse Package-返回上一级Installed Packages,将下载的东东解压后拷进去就可以了,注意是浏览器中文件拷贝! 重启 Sublime Text 2,如果在 Prefe[详细]
-
golang测试TCP最大连接数
所属栏目:[大数据] 日期:2020-12-16 热度:120
受限于本地端口数的分配,我想看看本地能起到多少个TCP client连接 本测试用例client和server都部署在同一台linux虚拟机上 查看进程打开的描述符数:102400(10万) [root@bogon~]#ulimit-acorefilesize(blocks,-c)0datasegsize(kbytes,-d)unlimitedscheduli[详细]
-
一个小实例告诉你GO锁的使用.
所属栏目:[大数据] 日期:2020-12-16 热度:189
package mainimport ("fmt""sync""time")var l sync.RWMutexvar a string = "1"func f() {a = "hello,world"l.Unlock()//l.RUnlock()}func main() {l.Lock()//l.RLock()go f()l.Lock()Lock()//l.URLock()fmt.Println(a)}[详细]
-
golang 调试
所属栏目:[大数据] 日期:2020-12-16 热度:169
打印所有goroutine curl -q http://127.0.0.1:8081/debug/pprof/goroutine?debug=2 xx.txt[详细]
-
golang反射与反射三法则
所属栏目:[大数据] 日期:2020-12-16 热度:77
反射是在 golang 程序运行时检查变量所具有类型的一种机制。由于反射可以得出关于变量结构的数据(即 “ 关于数据的数据 ” ),所以这也被认为是 golang 元编程的基[详细]
-
golang ftp客户端示例 支持断点续传
所属栏目:[大数据] 日期:2020-12-16 热度:125
package mainimport ( ftp4go "github.com/shenshouer/ftp4go" "fmt" "os")var( downloadFileName = "DockerToolbox-1.8.2a.pkg" BASE_FTP_PATH = "/home/bob/" // base data path in ftp server)func main() { ftpClient := ftp4go.NewFTP(0) // 1 for debu[详细]
-
Golang的演化历程
所属栏目:[大数据] 日期:2020-12-16 热度:100
http://blog.csdn.net/anlun/article/details/41494391 Golang的演化历程 十 25 本文来自Google的 Golang 语言设计者之一 Rob Pike 大神在GopherCon2014大会上的开幕主题演讲资料“ Hello,Gophers !”。Rob大神在这次分 享中用了两个生动的例子讲述了Golang[详细]
-
Golang的select/非缓冲的Channel实例详解
所属栏目:[大数据] 日期:2020-12-16 热度:65
select golang 的 select 就是监听 IO 操作,当 IO 操作发生时,触发相应的动作。 在执行select语句的时候,运行时系统会自上而下地判断每个case中的发送或接收操作是否可以被立即执行【立即执行:意思是当前Goroutine不会因此操作而被阻塞,还需要依据通道[详细]
-
Golang在Mac OS上的环境配置
所属栏目:[大数据] 日期:2020-12-16 热度:127
Golang 是Google开发的一种编译型,平行化,具有垃圾回收功能的编译语言,还和C一样有指针。 Golang 是天生的网络编程语言,学习使用 Golang 先从环境配置开始。 环境要求: Homerbrew 安装参考:http://brew.sh/ 安装Golang Golang 可以通过源代码自己编译安装[详细]
