2018
09-03
09-03
C和Go相互调用
C可以调用Go,并且Go可以调用C,如果更进一步呢,C-->Go-->C或者Go-->C-->Go的调用如何实现?本文通过两个简单的例子帮助你了解这两种复杂的调用关系。本文不涉及两者之间的复杂的数据转换,官方文章C?Go?Cgo!、wiki/cgo和cmd/cgo有一些介绍。Go-->C-->GoGo程序调用C实现的函数,然后C实现的函数又调用Go实现的函数。1、首先,我们新建一个hello.go的文件:hello.go...
继续阅读 >
曾几何时,这是很多Gopher在Go1.8、Go1.9时猜测是否存在的那个版本,毕竟minorversion即将进化到两位数。从Go语言第一封设计mail发出到现在的十年间,尤其是Go语言经历了近几年的爆发式增长,基本奠定了云原生第一语言的位置之后,人们对Go语言有了更多新的、更为深刻的认知,同时对这门编程语言也有了更多的改进和优化的期望。Go2在Gopher心中的位置日益提升,直到RussCox在GopherCon2017上公布了Gocoreteam对...
在写《Go语言标准库》的第九章——测试时,看到了此文,讲解挺细致,于是翻译为中文,作为学习《Go语言标准库》的第九章的补充材料。如果你花过一些时间学习如何编程,你很可能见过许多地方提过测试。似乎每个人都在谈论测试,似乎都同意你应该进行测试,但这到底需要什么呢?在这篇文章中,我将尝试回答这个问题,首先解释什么是测试,然后我会用Go去深入实际编写测试。在编写测试时,我将通过编写自定义mai...
Go语言在2016年当选tiobeindex的年度编程语言。转眼间6个月过去了,Go在tiobeindex排行榜上继续强势攀升,在最新公布的TIBOEINDEX7月份的排行榜上,Go挺进Top10:还有不到一个月,Go1.9版本也要正式Release了(计划8月份发布),当前Go1.9的最新版本是go1.9beta2,本篇的实验环境也是基于该版本的,估计与finalgo1.9版本不会有太大差异了。在今年的GopherChina大会上,我曾提到:Go已经演进到1.9,接下...
译者注:本文主要介绍使用Go语言与Ethereum智能合约进行交互。以下为译文尽管最近出现了麻烦,但Ethereum仍然是区块链空间中实现智能合约最重要的系统,而且这种情况似乎不太可能很快改变。在我看来,技术本身具有很大的潜力,从学术的角度来看是非常有趣的,但正如前面提到的问题,之前展示出来了很多问题,区块链技术,智能合约,特别是带有Solidity的Ethereum生态系统是非常不成熟的,而且也没有准备好的黄金时段/...
序言错误和异常是两个不同的概念,非常容易混淆。很多程序员习惯将一切非正常情况都看做错误,而不区分错误和异常,即使程序中可能有异常抛出,也将异常及时捕获并转换成错误。从表面上看,一切皆错误的思路更简单,而异常的引入仅仅增加了额外的复杂度。但事实并非如此。众所周知,Golang遵循“少即是多”的设计哲学,追求简洁优雅,就是说如果异常价值不大,就不会将异常加入到语言特性中。错误和异常处理是程序...
12月18日消息,据国外媒体报道,谷歌公司正在开发一种比空气还轻的材料,据称可以“改变我们与天空互动的方式”。阿斯特罗·泰勒(AstroTeller)是谷歌的秘密研究实验室GoogleX的负责人。在最近的一次TED演讲中,当他谈到公司放弃了货运飞船计划时,提到了这个依然保密的项目。GoogleX实验室设计了许多不可思议的科学点子,包括自动驾驶汽车、智能隐形眼镜和提供互联网服务的热气球等。“像许多经常发生的事情一样,我们或许会...