Go语言中文网 为您找到相关结果 39

还有比这更好的消息吗?— Go支持Android和iOS

minux大神就说了: 代码在 https://bitbucket.org/minux/goios 的 ios3 分支。 初步的文档在 misc/ios/README。交叉编译需要 iOS SDK,得在 OS X 上面开发。理论上如果你能在 Linux 架设交叉编译环境的话,在 Linux 上开发也不是不行。 我计划把这个 port 加入到 Go 1.5。按照 Brad 给出的 1.5 预览, 应该问题不大。http://talks.golang.org/2014/state-of-the-gopher.slide#40 现在的问题是如何架设 builder。 哎,断断续续搞了3年,终于搞定了。我觉得用 Go 开发 iOS 程序比用 Go 开发 Andro...阅读全文

Go1.5 尚未实现的Todolist

1.5的代码将在5月1日冻结,go team官方给出了在1.5中尚未实现的Todolist,但并不承诺后续一定会实现。[ Todolist 文档查看](http://pan.baidu.com/s/1mgxciHa)。其中有一项“shared library support ”,看来go有意向支持动态链接库了! Go 1.5 code freeze is May 1, 2015; release is August 1, 2015. This is a list of things we’re hoping will be in Go 1.5 but are not yet done. For the list of things that are done, see do...阅读全文

golang tcp 2 unix socket proxy

想将mysql 的TCP 封死,所有外部链接由我的proxy来控制,so 写了一个 tcp 转 unix socket 的 proxy。 package main import ( "os" "fmt" "net" "io" "sync" "time" ) type proxy struct{ Host string Port string Local string } func runProxy(list []proxy) { wg := sync.WaitGroup{} for _, v := range list { wg.Add(1) go func() { eachServer(v.Host, v.Port, v.Local) wg.Done() }() } wg.Wait() }...阅读全文

博文 2015-06-17 20:23:11 ylqmf

C/C++/Go混合编程实践之GoJieba

最近想在团队中推动Go在项目中更多场景的应用,提高开发效率。 但是遇到了一个顾虑,就是有些功能库是 C++ 写的, 切换到 Go 开发之后如果需要这些功能的话, 完全重写一个短期内不现实。 所以就产生了探究 C/C++/Go 混合编程的想法。 很早之前就听说 Go 语言对 C 语言非常友好, 几乎可以无缝使用 C 的一些丰富遗产。 刚学 Go 的时候尝试了一下,应该是因为参考的资料的问题, 没有顺利跑通。后来忙其他事情了,也没有深究为什么。 所以趁这个周末捣鼓了一下,跑通了 C/C++/GO 混合编程。 主要参考 how-to-use-c++-in-go 和 cgo , 不过前者的回答毕竟久远了,比如就不需要写像作者描述的, 那么复杂的 Makefile,直接 go build 即可(可以参...阅读全文

博文 2016-02-05 05:00:00 xie1xiao1jun

golang引用静态链接文件问题

各位gopher,请教个问题。 我有个stuff.a文件需要import在自己的main.go中 根据网上资料,stuff.a文件放在$GOROOT/pkg/linux_amd64/下,在$GOROOT/src/中touch一个fake的source文件,即stuff/stuff.go。 如果stuff.a中有其他嵌套的import,则编译呢main.go会出现undefined的错误,即找不到stuff.a中的方法 如果stuff.a没有其他嵌套的import,则可以使用(当然嵌套和非嵌套对应的方法内容是不一样的,否则go install不会通过) 各位有遇到相同的情况么?go install应该带上什么参数么...阅读全文

我希望的Golang的feature

如果有下面的功能,Go可以让程序员更高效。 1. 数学类型的自动转换。现在做个整数跟浮点数的计算也要手动转类型。据说是为了更安全和可预测的代码。但是其他主流语言都支持自动转,大家早就习惯了。需要考虑类型安全的地方,该考虑的人自然会去考虑。 2. Polymorphism的支持。interface对多态的支持还是比较有限。down casting做不了有的时候还是不大方便。比如下面这段代码就编不过 type Base struct { xxxx } type Derived struct { Base } func main() { v1 := &Drived{} var v2 *Base v2 = v1 //编译不过 v2 = *Base(v1) //也不行 } 3. 更方便的数组的操作比如...阅读全文

博文 2015-12-28 00:00:00 kefeng_chen

ubuntu go install

1)_sudo apt-get install bison ed gawk gcc libc6-dev make 2)apt-get install python-setuptools python-dev build-essential 3)hg clone -u release https://go.googlecode.com/hg/ go 4)cd go/src 5)./all.bash 6)在home的当前用户目录下编辑hello.go package main import "fmt" func main() { fmt.Printf("hello, world\n") } 7)编译并链接 cd ~/go/bin ./8g ~/hello.go ./8l ~/hello.8 8)...阅读全文

博文 2015-02-07 18:00:02 anjsoft

go实现爬取href链接

刚开始爬取的时候是用正则表达式实现的,然后爬取了不必要的链接,现在改用goquery实现: // judgeUrl project judgeUrl.go package judgeUrl import ( "strings" ) func IsUrl(str string) bool { if strings.HasPrefix(str, "#") || strings.HasPrefix(str, "//") || strings.HasSuffix(str, ".exe") || strings.HasSuffix(str, ":void(0);") { return false } else if strings.HasPrefix(str, "{") && strings.HasS...阅读全文

博文 2016-02-18 22:00:00 u011466175

如何利用Golang为Python编写模块

前言 ​ 由于公司的Python项目中有关于支付签名与验签的模块,是自定的一些内部逻辑,基于安全性考虑, 希望改用C/C++或者Go 来重构该部分模块,做到加解签过程透明,上层代码只需要关心结果. 由于最近开始了Golang的学习,就尝试完成这部分工作,整个过程都是边踩坑边完成,下面以样例代码来分享一下整个过程的思路. 记录 ​ Go里面需要显示的引入C模块, 让编译器支持生成动态链接库, 并且在代码中可以使用C语言的数据类型,这个至关重要. Calling Go code from Python code 摘取一个最简单例子 //libadd.go package main import "C" //export add func add(left, right int) int { re...阅读全文

博文 2017-03-01 16:44:09 咸鱼c

请教go-sql-driver/mysql库的问题

我是用go-sql-driver/mysql库创建了一个连接池。在链接数据库时,发现无法控制数据库的连接数。 我在程序中写了10个协程,一直发sql命令。但是发现数据库那边会有比我协程数多的链接在。我想控制链接数量,请问有什么办法么? SetMaxIdleConns的设置是做什么的?设置为0的时候,和数据库的链接就全部成了短链接了。而设置成1的时候,我协程数开为0,还会有个空闲链接连着...阅读全文

Golang 开源库

PostgreSQL链接库; https://github.com/bmizerany/pq MarkDown解析库 https://github.com/russross/blackfriday Redis链接库 https://github.com/alphazero/Go-Redis 配置文件读取库 https://github.com/jonsen/goconfig/config 日志操作库 https://github.com/cihub/seelog 数据库ORM库 https://github.com/astaxie/beedb 微信 https://github.com/astaxie/weixin 这个项目是基于beego开发的微信应用,主要实现了“Go中国”这个微信账号的...阅读全文

博文 2015-06-08 06:00:01 ellice

Golang tls 链接通信

package tcp_listen import ( "crypto/rand" "crypto/tls" "net" ) func Servertls(addr, crt, key string) (net.Listener, error) { cert, err := tls.LoadX509KeyPair(crt, key) if err != nil { return nil, err } config := tls.Config{Certificates: []tls.Certificate{cert}} config.Rand = rand.Reader listener, err := tls.Listen("tcp", addr, &config) if err != ni...阅读全文

博文 2016-07-06 21:00:01 fyxichen

go第一天

一.语言的主要特性与发展的环境和影响因素 这个文章作者写的很好,从影响go发展的早期语言,为什么需要一个新语言,go语言的目标,go语言的设计思想,用途,特性等,都做了很好的讲解. 学习总结: 1.go也属于c系语言,但是又汲取了其它语言的精粹部分(有点王婆卖瓜的味道),比如包和声明方面(Pascal、Modula 和 Oberon),并发设计(通信序列进程 Communicating Squential Processes,Limbo 和 Newsqueak,Erlang),go有着类c的语法,但又更为简洁,还有一些动态语言的特性.PS:它是开源的 2.Go 语言:快速编译,高效执行,易于开发, 3.Go 语言的主要目标是将静态语言的安全性和高效性与动态语言的易开发性进行有机结合,Go 语...阅读全文

博文 2014-12-02 17:00:01 threeyax

go在windows下连接oracle数据库

一、系统环境 1. win7 64位 2. go 1.8 3. oracle SDK版本 12.1 4. mingw64位 5. go-oci8 二、安装步骤 1. 安装go1.8,参照网上的教程 2. 下载oracle 的sdk和运行库 3. 安装mingw64和pkg-config.exe,将pkg-config拷贝到mingw64的bin目录,pkg-config是编译go-oci8的时候需要用到的。 三、配置 1. 修改oci8.pc文件,存入mingw64的lib/pkgconfig目录 2. 修改PKG_CONFIG_PATH为E:\mingw-w64\mingw-w64\x86_64-4.9.2-posix-seh-rt_v3-r...阅读全文

golang1.7 关于CGO的一个小问题:C.free使用.

package main // #include import "C" import ( "fmt" "syscall" "unsafe" ) func main() { kernel := syscall.NewLazyDLL("Kernel32.dll") defer syscall.CloseHandler(syscall.Handle.(kernel.Handle())) volume := kernel.NewProc("GetVolumePathNameA") char := C.CString("D:") defer C.free(unsafe.Pointer(char)) n := make([]byte, 254) _, _, err := volum...阅读全文

博文 2016-09-05 19:00:05 fyxichen

关于vc go to definition定位不准的问题

参考网页地址: http://topic.csdn.net/t/20050222/14/3797843.html 今天将一个vc工程拷贝了一份到当前文件夹下保存,并用vc打开复制的工程开始修改程序,发现在使用在头文件里使用go to definition时,经常跳转到拷贝前的那个工程源文件里,而不是当前源文件里。另外,记得以前使用vc时也经常出现go to definition操作跳转不准,老是错位几行。仔细查了以下,发现go to definition与debug/release下的*.bsc文件有关,只要删掉这个文件,重新编译这个问题就可以解决了。 于是照这样做,但是有另外一个问题,出现如下报错,can't open *.bsc,查询原因,由于*.bsc是在编译时产生的*.sbr的基础上...阅读全文

博文 2015-06-17 23:08:08 czg1984

关于vc go to definition定位不准的问题

今天将一个vc工程拷贝了一份到当前文件夹下保存,并用vc打开复制的工程开始修改程序,发现在使用在头文件里使用go to definition时,经常跳转到拷贝前的那个工程源文件里,而不是当前源文件里。另外,记得以前使用vc时也经常出现go to definition操作跳转不准,老是错位几行。仔细查了以下,发现go to definition与debug/release下的*.bsc文件有关,只要删掉这个文件,重新编译这个问题就可以解决了。 于是照这样做,但是有另外一个问题,出现如下报错,can't open *.bsc,查询原因,由于*.bsc是在编译时产生的*.sbr的基础上生成的,而我的工程在编译某个文件时,出现超过100的编译错误,如下报错: fatal error C1003: e...阅读全文

博文 2015-06-17 23:08:08 xialibing103

go 链接 vs2010 C语言 LIB,找不到函数?

//**************************main 文件***************************** package main /* #include ".\libinc\BL5460Tools.h" #include ".\libinc\DeviceMgr.h" #include ".\inc\SelfDebugPaltformView.h" #include ".\inc\CfgAutoTune.h" #cgo CFLAGS: -I .\libinc #cgo CFLAGS: -I .\inc #cgo LDFLAGS: -L .\lib */ import "C" func main() { C.DEVMGR_Open("...阅读全文

google访问hosts文件

#google hosts 2015.05.19 V2 64.233.162.84 google.com 64.233.162.84 www.google.com 64.233.162.84 m.google.com 64.233.162.84 scholar.google.com 64.233.162.84 translate.google.com 64.233.162.84 books.google.com 64.233.162.84 appengine.google.com 64.233.162.84 maps.google.com 64.233.162.84 news.google.com 64.233.162.84 images.google.com 64.233.162.84 f...阅读全文

博文 2015-06-17 20:05:23 Hello___Sunshine

go testing

官方文档 点击打开链接 demo 如下: add.go package simplemath func Add(a int, b int) int { return a + b } add_test.go package simplemath import "testing" /** 在任意目录下运行单元测试如下 go test simplemath */ func TestAdd1(t *testing.T) { r := Add(1, 2) if r != 3 { t.Errorf("Add(1, 2) failed . Got %的, expect 3. ", r) } } 运行: go test simplemath 输出: ok simplemath 0.005...阅读全文

博文 2016-10-13 22:00:02 robert198837

golang1.7 关于CGO的一个小问题:C.free使用.

package main // #include import "C" import ( "fmt" "syscall" "unsafe" ) func main() { kernel := syscall.NewLazyDLL("Kernel32.dll") defer syscall.CloseHandler(syscall.Handle.(kernel.Handle())) volume := kernel.NewProc("GetVolumePathNameA") char := C.CString("D:") defer C.free(unsafe.Pointer(char)) n := make([]byte, 254) _, _, err := volum...阅读全文

博文 2016-09-10 22:00:03 fyxichen

Go 匿名函数的理解

通常不希望再次使用(即只使用一次的)的函数可以定义为匿名函数 详细链接 : https://www.kancloud.cn/xiaohuamao/riji/335713 package main import "fmt" func main() { //匿名函数 1 //f1 为函数地址 f1 := func(x, y int) (z int) { z = x + y return } fmt.Println(f1) fmt.Println(f1(5, 6)) //匿名函数 2 //直接创建匿名函数并运行 f2 := func(x, y int) (z int) { z = x + y return }(7, 8) fmt.Println(f2) //匿名函数 2 (无参数的形式) func...阅读全文

博文 2017-06-16 16:03:18 winnie121

视频笔记:Go 的构建模式 - David Crawshaw

视频信息 什么是 Build Mode? Go 的八种 Build Mode exe (静态编译) exe (用 libc) exe (动态链接 libc 和非 Go 代码) pie - Position Independent Executables c-archive C 的静态链接库 c-shared C 的动态链接库 为什么会需要动态链接? shared Go 的动态链接库 plugin Go 的插件 优缺点 未来 视频信息 #Go Build Modesby David Crawshaw, Googleat GopherCon 2017 https://www.youtube.com/watch?v=x-LhC-J2Vbk 什么是 Build Mode? #build mode 用...阅读全文

博文 2017-10-05 14:44:14 大桥下的蜗牛