-
Golang 的一个小坑
所属栏目:[大数据] 日期:2020-12-16 热度:178
1.用错等号 func main() { var s="hello" if true {s:="bye"println(s) } println(s)}====byehello 2. 模板字符串编码不对 3. 文件名次大小写问题 4. 类属性大小写问题, 5. init 死循环[详细]
-
升级 golang 1.2 后编译不过
所属栏目:[大数据] 日期:2020-12-16 热度:68
把 GOPATH/pkg 内容删掉就可[详细]
-
多核计算与并发编程(三) 使用Go语言的管道
所属栏目:[大数据] 日期:2020-12-16 热度:132
所谓夹带私货,就是第一篇看上去很客观,第二篇隐约指出Go语言是一门好语言,这第三篇,完全是讲Go语言编程,不关心的读者可以忽略。 上一篇我们说到Erlang是适应多核编程的语言,因为 1.进程间不共享内存 2.进程间使用消息通讯 3.不使用锁 其中,不使用锁,[详细]
-
Golang cgo编程 [] string 转 C语言 char**
所属栏目:[大数据] 日期:2020-12-16 热度:61
func Test(args[] string){ arg := make([](*_Ctype_char),0) //C语言char*指针创建切片 l := len(args) for i,_ := range args{ char := C.CString(args[i]) defer C.free(unsafe.Pointer(char)) //释放内存 strptr := (*_Ctype_char)(unsafe.Pointer(char)[详细]
-
Openshift + GOLANG
所属栏目:[大数据] 日期:2020-12-16 热度:57
設定步驟: 建立 OpenShift Free plan帳號,可以免費新增三個Web App。 新增Do-It-Yourself (DIY) Application。 Public URL可依喜好輸入。 Source Code可以使用小弟做好的shell script。(https://github.com/DonaldIsFreak/openshift-beego) 按下Create App[详细]
-
Golang配置
所属栏目:[大数据] 日期:2020-12-16 热度:106
安装请看这里: http://golang.org/doc/install 安装完以后需要 配置: GOROOT go的安装目录 GOPATH 你的开发目录,一般就是你的workspace的目录 比如我的机器是这样配置的 GOPATH=G:workspace_go GOROOT=G:Program Files (x86)Go PS:这两个我开始的时候经[详细]
-
GoLang之各种函数的用法
所属栏目:[大数据] 日期:2020-12-16 热度:59
2013-12-27 wcdj 大纲 本文总结GoLang中常用的几种函数用法,主要包括: [0] 首先main是一个没有返回值的函数 [1] 普通函数 [2] 函数返回多个值 [3] 不定参函数 [4] 闭包函数 [5] 递归函数 [6] 类型方法,类似C++中类的成员函数 [7] 接口和多态 [9] 错误处理,[详细]
-
GoLang之环境变量和Project目录配置的方法
所属栏目:[大数据] 日期:2020-12-16 热度:61
2013-12-29 wcdj 0 大纲 本文总结在安装Go时如何配置GoLang的环境变量和创建一个Project的目录结构。下文描述以*NIX环境为主,Windows方法类似。 1 安装及环境变量 Go的安装方法包括:默认安装和自定义安装,官方的描述请参看这里:http://golang.org/doc/in[详细]
-
Golang里调用C
所属栏目:[大数据] 日期:2020-12-16 热度:160
Golang里调用C 2010-04-18 13:21:28 |分类: 积累 |标签: | 字号 大 中 小 订阅 Golang调用C分两个步骤:1 写一个C的wrapper,这个很简单;2 对wrapper做编译,这个步骤有点复杂,而且涉及众多中间文件。应该是有办法用自动化的工具简化这个过程的。 先来展[详细]
-
Golang 的 map,slic 转 json 注意 chan
所属栏目:[大数据] 日期:2020-12-16 热度:129
// You can edit this code! // Click here and start typing. package main import "fmt" import "encoding/json" type ChannelOperator struct { Oid string Aid string Name string Isonline bool Msgchan chan string `json:"-"` } type ChannelOperators[详细]
-
分享基本golang学习的书
所属栏目:[大数据] 日期:2020-12-16 热度:152
第一本是《goweb编程》-为什么先推荐这本呢?因为这本书是从浅显到深的方式,适合初学者个人感觉是一本很棒的书,是国内的AStaxie写的一本golang的书,盛大云分发的研究员,有Beego这个框架大家可以去感受一下! 第二本是《go语言编程》--是七牛云存储许式伟[详细]
-
golang里channel的实现原理
所属栏目:[大数据] 日期:2020-12-16 热度:134
channel是消息传递的机制,用于多线程环境下lock free synchronization. 它同时具备2个特性: 1. 消息传递 2. 同步 golang里的channel的性能,可以参考前一篇:http://blog.sina.com.cn/s/blog_630c58cb01016xur.html 此外,自带的runtime package里已经提供[详细]
-
golang 里goroutine产生的线程数量
所属栏目:[大数据] 日期:2020-12-16 热度:85
import "os" func main() { for i:=0; i20; i++ { go func() { for { b:=make([]byte,10) os.Stdin.Read(b) // will block } }() } select{} } 会产生21个线程: runtime scheduler(src/pkg/runtime/proc.c)会维护一个线程池,当某个goroutine被block后,sch[详细]
-
Golang 类型转换整理
所属栏目:[大数据] 日期:2020-12-16 热度:179
1、整形到字符串: [plain] view plain copy variint=1 varsstring copy s=strconv.Itoa(i)或者s=FormatInt(int64(i),10) 2、字符串到整形 copy varsstring="1" variint i,err=strconv.Atoi(s)或者i,err=ParseInt(s,10,0) 3、字符串到float(32 / 64) copy va[详细]
-
GoLang 强制类型转换:unsafe.Pointer
所属栏目:[大数据] 日期:2020-12-16 热度:181
注意此种转换只适合简单类型,对于有对象描述的类型是完全不适用的,鸡肋啊 ps:补充另外一种用法,这次就不鸡肋了 Go语言是个强类型语言。也就是说Go对类型要求严格,不同类型不能进行赋值操作。 指针也是具有明确类型的对象,进行严格类型检查。下面的代码[详细]
-
golang标准库的分析os包(6)
所属栏目:[大数据] 日期:2020-12-16 热度:72
这个还是在我的博客首发的,但是我感觉人流量太小,我们写博客的目的不仅是记录我们再用的时候遇到的问题,是为了更好的让大家在以后的学习和开发中也用到~~为go语言的宣传尽自己一点微薄的力量 今天我们讲golang标准库的os包type File struct{},还是废话少[详细]
-
golang讲解(go语言)标准库分析之os(7)
所属栏目:[大数据] 日期:2020-12-16 热度:198
今天我们继续讲golang标准库的os包,依然是没有废话直接来 (1)(f *File).Name()这个函数是返回文件的名称,函数原型func (f *File) Name() string要文件的指针操作,返回字符串,感觉比较鸡助的方法底层实现 func (f *File) Name() string { return f.name }[详细]
-
Go语言的函数调用信息
所属栏目:[大数据] 日期:2020-12-16 热度:186
By chaishushan{AT}gmail.com 注: 本文初稿发在 Golang 中国博客,这里的内容有部分修改. 函数的调用信息是程序中比较重要运行期信息,在很多场合都会用到(比如调试或日志). Go语言 runtime 包的 runtime.Caller / runtime.Callers / runtime.FuncForPC 等几个[详细]
-
golang -- 写在前面的话
所属栏目:[大数据] 日期:2020-12-16 热度:82
今天开始打算学习golang,说 并发性很好,非常适合做服务器开发的.初步打算用golang写服务器网关,用python写业务服务器,这样可以减少服务的重启率,提高服务稳定性和效率. IDE使用LiteIDE 配置文件如下: 查看 -- 编辑环境变量 #nativecompilerwindows386GOROOT=[详细]
-
Go语言的国际化支持(基于gettext-go)
所属栏目:[大数据] 日期:2020-12-16 热度:63
本文在 Golang中国博客 的地址: http://blog.go-china.org/07-gettext hello,world! 假设有以下的程序,输出: "Hello,world!". package mainimport ("fmt")func main() {fmt.Println("Hello,world!")} 现在要让改程序支持不同语言的用户,然后以本地语言输出相[详细]
-
golang -- 序列化 msgpack & json
所属栏目:[大数据] 日期:2020-12-16 热度:144
下面总结一下go的序列化,通信中常用的格式:msgpack和json msgpack 安装: go get go get github.com/vmihailenco/msgpack go install github.com/vmihailenco/msgpack api:http://godoc.org/github.com/vmihailenco/msgpack func ExampleEncode() { b,err :=[详细]
-
golang -- channel使用
所属栏目:[大数据] 日期:2020-12-16 热度:79
Channel 重复关闭channel ch:=make(chanbool)close(ch)close(ch)//这样会panic的,channel不能close两次 读取的时候channel提前关闭了channel close(ch)i:=-ch//不会panic,但是i读取到的是零值(""/false/nil) 向已经关闭的channel写数据 ch:=make(chanstring[详细]
-
成为主流语言,Golang急需解决的几个问题
所属栏目:[大数据] 日期:2020-12-16 热度:56
最近编程语言当中,golang无疑是风生水起,年度语言,服务器端语言,并发语言,皇冠可谓不少。golang开发的初衷是替换掉c/c++,作为系统级语言,加上在1.3版本中打算将编译系统从原来c语言开发的plan 9编译器,改为golang实现,可谓野心勃勃。golang最令人赞[详细]
-
golang -- 网络字节编解码(1)
所属栏目:[大数据] 日期:2020-12-16 热度:152
在网络传输协议过程中,封包常见的方式一般是: ①头标识+数据头(类型/属性/数据长度)+数据体+尾标识 --一般还需要转义 ②固定长度 -- 编解码方便,浪费宽带 ③通过结尾标识(eg.通过base64传输,以 结束) --编解码方便,浪费 宽带 下面是golang在编解码的常用手[详细]
-
golang -- 网络字节编解码(2)
所属栏目:[大数据] 日期:2020-12-16 热度:199
以下是利用标准库binary来进行编解码 解码 ①使用bytes.NewReader/bytes.Buffer来存储要解码的ascii串 ②使用binary.Read来解码 packagemainimport("bytes""encoding/binary""fmt")funcmain(){varpifloat64bpi:=[]byte{0x18,0x2d,0x44,0x54,0xfb,0x21,0x09,0[详细]
