golang之cgo---类型转换小试牛刀之C结构体和go结构体转换
上一篇文章讲了go与C基本类型转换(http://blog.csdn.net/freeape/article/details/51885308),但是在实际项目中用到的不仅仅是基本类型之间的转换,更多的是函数封装中的值传递和指针传递,如何在C功能函数中和Go中进行各种值和指针传递呢?根本方法还是利用基本类型,包括特别常用unsafe.Pointer 先看一个例子: package main /* #include
上一篇文章讲了go与C基本类型转换(http://blog.csdn.net/freeape/article/details/51885308),但是在实际项目中用到的不仅仅是基本类型之间的转换,更多的是函数封装中的值传递和指针传递,如何在C功能函数中和Go中进行各种值和指针传递呢?根本方法还是利用基本类型,包括特别常用unsafe.Pointer 先看一个例子: package main /* #include
google的tensorflow提供golang接口了,总算是拉了自家的语言一把。周末抽空试了试,总体思想还是用python训练并Save好model(更友好),然后用golang Load该model,再进行运算。详情见:http://baixiaoustc.com/2017/07/24/2016-07-24-try-tensorflow-with-golang...阅读全文
RabbitMQ 是一个消息代理商,它负责接收和传递消息,就像一个邮局,你寄信要通过邮局,邮局会接收你的信并将信传送给收件人。由Erlang语言实现,使用AMQP协议。所谓AMQP,即Advanced Message Queuing Protocol,就是一个提供统一消息服务的应用层标准高级消息队列协议。安装: 官方提供了多种安装方式 :http://www.rabbitmq.com/download.html 笔者环境MacOS, 使用了homebrew的安装方式,详情见:http://www.rabbitmq.com/install-homebrew.htmlP : producer 消息生产者 Q :queue消息队列,在RabbitMQ和应用中传递的消息被存在消息队列中,消息队列是...阅读全文
前言 最近在学习fabric 1.2版本的新特性,其中有一个是实现了交易背书和区块结果验证这两个原本由系统链码escc和vscc负责的模块的可插拔。它们的可插拔用到了Go的plugin技术,这也是我第一次知道Go Plugin的概念(虽然在Go 1.8版本就有了),于是准备探一探究竟Go Plugin是什么,怎么用。 什么是Go Plugin Golang是静态编译型语言,在编译时就将所有引用的包(库)全部加载打包到最终的可执行程序(或库文件)中,因此并不能在运行时动态加载其他共享库。Go Plugin提供了这样一种方式,能够让你在运行时动态加载外部功能。 为什么用Go Plugin 其实应该问为什么要用Plugin,我觉得原因有很多,比如: 可插拔:有了Plugin,我的程序可以根据需要随...阅读全文
上一篇文章讲了go与C基本类型转换(http://blog.csdn.net/freeape/article/details/51885308),但是在实际项目中用到的不仅仅是基本类型之间的转换,更多的是函数封装中的值传递和指针传递,如何在C功能函数中和Go中进行各种值和指针传递呢?根本方法还是利用基本类型,包括特别常用unsafe.Pointer 先看一个例子: package main /* #include
Kafka 安装配置、更多资料请参考其官网。 启动 kafka server 在这之前需要启动 zookeeper 做服务治理(单机)。 $ bin/zkServer.sh status conf/zoo_sample.cfg 如提示权限限制加上 sudo 。 启动 kafka server $ bin/kafka-server-start.sh config/server.properties 启动消息队列(本部分仅为测试 server) 新建 Topic $ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test $ bin/kaf...阅读全文
源于只因遇见Go,被Go的魅力所折服,慢慢将发生下面的故事 Ubuntu下Go的安装 Go的安装方式有好几种,可以根据自己的系统版本,下载对应的文件.分享下我的安装方式,笔者系统版本是linux(ubuntu)64位,往后都是基于Liunx(Ubuntu)进行分享. 下载Go的源码 解压源码--->自定义文件夹 设置环境变量 GOROOT:export GOROOT=/home/ubuntu/go/,Go源码文件夹所在地址 GOPATH: export GOPATH=/home/ubuntu/workspace/,Go代码存放位置 PATH:export PATH=$PATH:$GOROOT/bin:$GOPATH/bin,设置下系统环境变量 注意:说明下,根据本地脚本的类型在响应的配置文件...阅读全文
首先说下,我为什么选择go吧。之前一直做的都是.net平台下的开发,常用的服务端语言就是C#。刚接触C#的时候,就喜欢上了这种高级语言,它优雅、易上手、开发周期短,很多高级特性以及自带的托管内存管理GC。。。这样用了将近3年的时间,慢慢地感受到了它的不足之处(内存占用大,体系庞杂,不够精悍,对.net framework的强依懒性,无法跨平台,当然目前.net core 开源且跨平台,性能也有很大的提升,只是坑太多,目前使用还没有普及起来)而变得无法忍受。与此同时,一个叫go的语言越来越火,于是把目光瞄准了它。据说: 简洁、快速、安全 并行、有趣、开源 内存管理、v数组安全、编译迅速 正好解决了一部分C#无法解决的问题,最重要的还是短小精悍,简洁快速。说不如做,在工作之余,俺用试着做了了一个...阅读全文
第1章 课程介绍(提供问答区答疑解惑)本章主要介绍课程安排,以及开发环境的配置.如无Kotlin基础,可以学习老师的另一门课程:https://coding.imooc.com/class/108.html第2章 小试牛刀本章主要完成一个基于扩展方法、Lambda 表达式和运算符 Boolean 的扩展、 以及基于属性代理的 SharedPreferences 和 Properties 的扩展,一方面为课程的后续内容做铺垫,另一方面也帮助学院能够快速进入状态。第3章 Mvp 框架的开发本章主要运用泛型和反射的知识开发一个基于运行时反射获取泛型实参来完成 View与Presenter 绑定以及实例注入的框架,对比 Java 反射以及 Kotlin 反射在 Kotlin 当中的运用,同时对泛型的...阅读全文