Go语言调用C语言函数的坑

最近在看人民邮电出版社 许式伟 吕桂华编著的《Go语言编程》,看到【1.2.9 语言交互性】小节的cprint.go。未按照书中源代码格式编写,而是把 import "C" 和 import "unsafe" 合并放入小括号中并和注释结束符 */ 间隔了一行,这也是大多数Go语言学习和开发者经常使用的代码风格,我修改后的代码如下:package main/*#include <stdio.h>#include <stdlib.h>*/import ( "C" "unsafe")func main...阅读全文

51CTO博客 2014-12-07 22:00:59 dongsong1117

go语言介绍

Go 是 google 在 2009 年推出的系统编程语言,2013 年 5 月 13 号 发布 Go 1.1 版本。Go 语言虽然现在不是很流行,但是很多人都看好它,O__O"…。NodeJS 也是新出的技术(貌似也是 2009 年出来的),不过 JavaScript 语言的历史相对就长了些;Python 很火。有次分享会上一个人说,JS 是屌丝逆袭的语言,go 才是高富帅 !~~~~(>_<)~~~~ Go 到底有神马过人的优点? 简单易学:g...阅读全文

开源中国博客 2013-07-08 10:12 zjushawnelee88

golang--gorilla/context,golang之单例模式

gorilla是用golang写的web工具箱,里面提供了一系列的工具。在用golang开发web中,搭配gorilla可以加快整个开发的进程。gorilla的官网在这里,代码托管在github,这里要看的是gorilla/context。 在context文件夹里面,有个context.go文件,里面就是context包主要的代码。 在context.go的开始部分,声明了几个全局变量, var ( mutex sync.Mutex data = make(map[*http.Request...阅读全文

博客园 2013-04-17 08:15 getong

golang

上次去ECUG听了一次讲座,了解到这世界上还有一门go语言。最近抽时间学了一下,很优秀的一门语言。 公司有一个框架,是用c++实现了协程的调度。用它实现“服务节点”非常方便。今天终于把框架里面节点之间是如何 通信的部分搞懂了。调度的部分还不是特别清楚,正好go实现了调度这部分的功能。所以,计划用go实现一个通用的框架, 来更快速的开发服务。 先把基本思路写在这里。 go中的协程是用chan(管道)通信的,所以可以借鉴actor模式。 1:每个协程有一个GID,用户可以找到这个协议。 2:每个协程...阅读全文

博客园 2011-12-04 21:58 xloogson

go install 的工作方式

go install 是Go语言提供的非常方便的编译工具。但是最近在项目使用过程中遇到一些问题,在这里记录一下。 问题 通常情况下,修改了代码之后使用go install编译,运行,都能得到正确的结果。 但是有时候发现,修改了源代码,却没有被重新编译,于是导致许多诡异的问题。 为了弄清楚这个问题,下面用一个简单的例子来做个实验。也顺带把go install的工作方式简单介绍一遍。 简单的代码 现在有一个名叫hello的项目,目录在/tmp/gomain/src/hello/hello.go pa...阅读全文

CSDN博客 2014-08-13 11:18 tiaotiaoyly

golang-china

golang-china - Go 语言中文翻译项目 - Google Project Hosting翻译任务安排2010年12月:command 2011年01月:pkg部分 发布:Go语言文档初稿 认领任务、翻译进展、检验、疑问等,请邮件讨论 golang-china@googlegroups.com中文文档翻译进度 标题状态进度翻译者校验者Install Go(安装Go环境)初译done完成chaishushanGo Tutorial(Go语言入门教程)初译done完成Bian Jiang...阅读全文

博客园 2012-05-22 10:22 lexus

在go中使用json作为主要的配置格式

最近在用go重构,在先前的代码中,我们使用的ini文件进行配置,但是因为很多历史遗留问题,导致配置混乱,维护困难,自然也需要考虑重构了。 通用配置格式 通用的配置格式有很多,常用的就有ini,json,yaml,xml等,当然为了通用我们不考虑自定义的配置格式。那如何选择呢? 首先,xml我们就不用考虑了,到现在为止我都没觉得用这玩意配置起来有多方便,反而很臃肿,可能java系的童鞋会比较青睐。 再来考虑ini,ini文件对于简单应用的配置可以说是非常方便的,如果配置没有太多的层次结构,使...阅读全文

CSDN博客 2014-04-13 11:54 siddontang

go语言代码测试

在go的pkg库里提供了一个单元测试的框架testing,并提供了一个测试工具gotest   规则如下: 如果我们有一个文件add.go,这其对应的测试文件名为add_test.go 在add_test.go中,引入testing库,然后添加测试方法 测试方法的函数必须是如下形式 func TestXXX(t *testing.T) { //.... } 而且其中第一个'X'还不能是小写字母,如果在测试方法中调用了testing库中的T类的Error,Fail,Fatal等方法则表示发生错误...阅读全文

CSDN博客 2010-04-17 12:34 dux003

emacs + gocode 让编写go语言更加给力

首先在这里我要感谢 dataangel (qq:996421165) 童鞋。个人领悟能力比较差,但他还是耐性教导。这里呢只是吧自己接触go语言的遇到的问题。安装配置环境,编写代码环境 跟编译环境配置做一个整合。希望能给学习go语言的友友带来便利。 我使用windows版下编写。其他系统未配置过。有空配置的话,会继续写博客~~!刚刚开始学写博客写的不好还望多多包涵。         go语言群:102319854 一些常用链接: http://golang.org/                ...阅读全文

CSDN博客 2011-04-04 12:11 qq358860528

windows下用eclipse+goclipse插件+gdb搭建go语言开发调试环境

目前go语言在window或者linux操作系统上,最好的go语言开发调试环境都是由eclipse+goclipse插件+gdb搭建的。如果你还没有搭建好go语言的开发环境,请参考这篇博文《windows下Go语言的安装和开发环境搭建》。 一般大家用eclipse都是开发java,如果要开发go,那就得安装goclipse插件了,这样才能有代码高亮、自动编译、联想提示、跳转到函数定义等丰富功能;如果还想要调试的功能,就还得有gdb;如果你还想引入github上的开源库,那还需要git客户端。下面...阅读全文

CSDN博客 2014-05-07 10:49 mecho

深入学习golang(2)—channel

Channel 1. 概述 “网络,并发”是Go语言的两大feature。Go语言号称“互联网的C语言”,与使用传统的C语言相比,写一个Server所使用的代码更少,也更简单。写一个Server除了网络,另外就是并发,相对python等其它语言,Go对并发支持使得它有更好的性能。 Goroutine和channel是Go在“并发”方面两个核心feature。   Channel是goroutine之间进行通信的一种方式,它与Unix中的管道类似。 Channel声明: ChannelType =...阅读全文

博客园 2014-10-02 00:05 hustcat

深入学习golang(1)—数组与切片

数据(array)与切片(slice) 数组声明: ArrayType   = "[" ArrayLength "]" ElementType . 例如: var a [32] int var b [3][5] int   在Go和C中,数组的工作方式有几个重要的差别。在Go中, (1)数组是值类型。将一个数组赋值给另一个,会拷贝所有的元素。 (2) 如果你给函数传递一个数组,其将收到一个数组的拷贝,而不是它的指针。 (3)数组的大小是其类型的一部分,类型[10]int和[20]int是不同的。...阅读全文

博客园 2014-09-30 21:27 hustcat