原创

Go 语言分享

作者:贺长鸿

导语 : Go语言从2009年发布第一版开始,逐渐变的流行,被人所熟知,但是很多人可能听说过go,但是对go的特性并不是很了解,这里主要介绍go的一些关键特性和go语言总体的情况。

go分享ppt和go语言圣经上的聊天室代码附上。

在ppt之外,补充几点分享之后收集到的。

  1. 目前go已经不依赖glibc,除非使用cgo,才会默认链接到lib目录下的几个so,ldd验证即可。
  2. go现在虽然已经支持编译成.a和.so文件供c++使用,但是有诸多限制,比如go类型不支持,一些库不支持等等。另外,生成.a文件,使用cgo工具,会自动生成.h和.c文件,然后进行编译即可;生成so文件,使用buildmode=c-shared即可,但是在c++中需要使用dlopen一整套,相当麻烦,另外也觉得难以修改和维护。(PS:个人觉得go作为高层次一些的语言,c++作为更为底层的语言,用c++调用go总感觉怪怪的,不知道效果是否真的能达到)
  3. go1.8版本后,支持将go代码编译成so,可以在其余go服务中用plugin库进行动态加载,插件式的方法,变的更加方便,适合框架开发,当然目前仅仅支持Linux。

最后,go还有很多我不了解的知识,需要持续学习。

这里有任何不对和不准确的地方,欢迎指正和帮助,3Q。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 实时渲染中角色的反走样

    在图形学渲染技术中,由于采样率不够会造成渲染结果的锯齿以及抖动,我们把这种现象称作走样。

    serena
  • react 渲染性能优化

    react 性能提升的方法之一是尽量减少 DOM 对比和冗余操作,从而减少组件重复渲染;刚开始使用 react 的时候只专注于对于逻辑的处理,导致很多地方会出现...

    serena
  • TAF 入门源码学习总结

    TAF 是分布式基于 epoll 的多线程非阻塞的高性能且支持同步、异步、单向调用 RPC 框架。框架将网络线程和业务线程隔离,并通过队列和管道实现网络线程和业...

    serena
  • 【从零开始学习Go语言】四.Go常用命令释义

    go run 命令用于编译并运行命令源码文件,如果你用vim编辑go文件并希望他暂时跑起来查看效果,使用此命令:go run file_name

    一只特立独行的兔先生
  • Go语言实战笔记(二)| Go开发工具

    在Go语言中,我们很多操作都是通过go命令进行的,比如我们要执行go文件的编译,就需要使用go build命令,除了build命令之外,还有很多常用的命令,这一...

    飞雪无情
  • C语言和go语言之间的交互 - C语言中使用go语言,使用的go语言又使用了c语言

    一、go语言中使用C语言 go代码中使用C代码,在go语言的函数块中,以注释的方式写入C代码,然后紧跟import “C” 即可在go代码中使用C函数 ? 代码...

    magicsoar
  • 初学者没有搞明白的GOROOT,GOPATH,GOBIN,project目录

    我们接下来一个一个来看关于Go语言中的三个目录的详细解释 先通过go env查看go的环境变量(我这里是mac的环境,所以可能和你的不同) localhost:...

    coders
  • Go命令官方指南【原译】

    如果构建的参数是.go文件的列表,则build会将它们视为指定单个包的源文件列表。

    sunsky
  • golang学习之win7下go环境搭建

    以下均采用windows64环境,首先是go的下载,go有msi安装安装和zip解压安装两种安装方式,使用msi安装后go环境会自动配置,zip解压后需手动配置...

    用户1141560
  • Docker 镜像多阶段构建

    本文内容来自我参与维护的 《Docker 从入门到实践》 项目。 之前的做法 在 Docker 17.05 版本之前,我们构建 Docker 镜像时,通常会采用...

    康怀帅

扫码关注云+社区

领取腾讯云代金券