本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是golang专题的第11篇文章,我们一起来聊聊golang当中多态的这个话题. 如果大家系统的学过C++.Java等语言以及面向对象的话,相信应该对多态不会陌生. 多态是面向对象范畴当中经常使用并且非常好用的一个功能,如果你之前没有学过的话也没有关系,我们用一个简单的例子来说明一下.多态主要是用在强类型语言当中,像是Python这样的弱类型语言,变量的类型可以随意变化,也没有任何限制,其实区别不是很大. 多态的含义 对于Java或…
Golang (Go语言) Mac OS X下环境搭建 环境变量配置 开发工具配置 Sublime Text 2 一.安装Golang的SDK 在官网http://golang.org/ 直接下载安装包安装即可.下载pkg格式的最新安装包,直接双击运行,一路按照提示操作即可完成安装. 安装完成后,打开终端,输入go,检测Golang SDK是否安装成功,如下显示,则表示安装成功: 你也可以输入go version 查看你所安装的Golang的版本 二.环境变量配置(GOPATH) GOPATH是…
interface简介 Go 语言以简单易上手而著称,它的语法非常简单,熟悉 C++,Java 的开发者只需要很短的时间就可以掌握 Go 语言的基本用法. interface 是 Go 语言里所提供的非常重要的特性.一个 interface 里可以定义一个或者多个函数,例如系统自带的 io.ReadWriter 的定义如下所示: type ReadWriter interface { Read(b []byte) (n int, err error) Write(b []byte) (n int…
一.安装Golang的SDK 在官网 http://golang.org/ 直接下载安装包安装即可.下载pkg格式的最新安装包,直接双击运行,一路按照提示操作即可完成安装. 安装完成后,打开终端,输入go,检测Golang SDK是否安装成功,如下显示,则表示安装成功: 你也可以输入go version 查看你所安装的Golang的版本 二.环境变量配置(GOPATH) GOPATH是用来告诉Golang命令和其他相关工具,在哪里可以找到你系统上的Go包目录. GOPATH是一个路径列表,类似于…
Golang有很多优点: 开发高效:(C语言写一个hash查找很麻烦,但是go很简单) 运行高效:(Python的hash查找好写,但比Python高效很多) 很少的系统库依赖:(环境依赖少,一般不依赖各种LibPath等) 简单可依赖:(静态类型,不怕Python的动态类型防不胜防的坑:unused import会报错,减少不必要的import:) 可以直接嵌C,也可以编译成so供C/C++调用:(搞不定的坑都可以让C来填:高效的部分golang刷刷刷) 开发高效 VS 运行高效 一般情况下,…
前言 interface(即接口),是Go语言中一个重要的概念和知识点,而功能强大的reflect正是基于interface.本文即是对Go语言中的interface和reflect基础概念和用法的一次梳理,也算是我阶段学习的总结,以期温故而知新. interface(接口) 定义 在Go语言中,如果自定义类型(比如struct)实现了某个interface中的所有方法,那么就可以说这个类型实现了这个接口.接口可如下定义: type 接口名称 interface { method1(参数列表)…
跟着尚硅谷B站视频记的笔记 入门 go 编译和运行源代码 go build 编译源代码,生成可执行文件 go build -o newName.exe name.go go run 直接编译运行代码 godoc gofmt 格式化代码 1 遇到的问题 1.1 安装环境问题 换成国内源 go env -w GOPROXY=https://goproxy.cn,direct 1.2 报错 package XXX is not in GOROOT (X:\XXX\Go\src\XXX) 解决方法:go…
对于go语言来说,设计最精妙的应该是interface了,直白点说interface是一组method的组合.至于更加详细的描述,本文不做介绍,今天谈谈空接口. 空interface(interface{})不包含任何的method,因此所有的类型都实现了空interface.空interface在我们需要存储任意类型的数值的时候相当有用,有点类似于C语言的void*类型.请看下面的代码: package main import (     "fmt" ) func main() {…
FFI(Foreign Function Interface)是用来与其它语言交互的接口, 在有些语言里面称为语言绑定(language bindings), Java 里面一般称为 JNI(Java Native Interface) 或 JNA(Java Native Access). 由于现实中很多程序是由不同编程语言写的,必然会涉及到跨语言调用,比如 A 语言写的函数如果想在 B 语言里面调用,这时一般有两种解决方案:一种是将函数做成一个服务,通过进程间通信(IPC)或网络协议通信(RP…
Go是Google开发的一种编译型,并发型,并具有垃圾回收功能的编程语言. 罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊于2007年9月开始设计Go语言,Go语言是基于Inferno操作系统所开发的.Go语言于2009年11月正式宣布推出,并在Linux及Mac OS X平台上进行了实现. GO语言吉祥物,很可爱吧. Go语言的hello world!代码: package main import "fmt" func main() …