获取url中的参数及输出到页面的几种方式 func SayHello(w http.ResponseWriter, req *http.Request) { req.Method //获取url的方法 GET or POST request := req.URL.Query() //获取url中的所有参数(get或post) io.WriteString(w, req.FormValue("id")) //获取url的id参数(常用) w.Write([]])) //发送到HTTP客户…
这里是golang拾遗系列的第三篇,前两篇可以点击此处链接跳转: golang拾遗:为什么我们需要泛型 golang拾遗:指针和接口 今天我们要讨论的是golang中的嵌入类型(embedding types),有时候也被叫做嵌入式字段(embedding fields). 我们将会讨论为什么使用嵌入类型,以及嵌入类型的一些"坑". 本文索引 什么是嵌入类型 嵌入类型的使用 嵌入类型字段引用 嵌入类型的初始化 嵌入类型的字段提升 什么是字段提升 提升是如何影响字段可见性的 提升是如何影…
calling c++ from golang with swig--windows dll 之前项目组开发的项目核心代码全部使用C++语言,新项目可能会引入golang,花了一天多时间研究了windows环境下golang调用C++动态链接库的方法. 谷歌加百度之后,很快发现官方推荐的方法,在官方FAQ页面可以找到答案: https://golang.org/doc/faq Do Go programs link with C/C++ programs? There are two Go co…
马上就要进入2018年了,作为年终的盘点,本文列出了一些2017年的关于Go编程的一些文章,并加上简短的介绍. 文章排名不分先后, 文章也不一定完全按照日期来排列.我按照文章的大致内容分了类,便于查找. 文章主要从golangweekly.gocn每日新闻.medium.reddit.twitter..知名博主的文章搜集而来.如果你发现好的2017年的Go文章没有列出来,欢迎在评论中粘帖出来,我会加入到文章正文中. 本文主要列出的是文章,2017年也涌现出来很多优秀的库和工具,但是不是本文要介绍…
什么是包?为什么使用包? 到目前为止我们见到的 Go 程序都只有一个文件,文件中包含了一个main函数和几个其他函数.在实际中这种将所有代码都放在一个文件里的组织方式是不可行的.这样的组织方式使得代码变得无法重用和维护困难.包(package)用于解决这样的问题. 包用于组织Go源代码,以获得更好的重用性和可读性.包提供了代码封装的机制从而使得Go应用程序易于维护.例如,假设我们正在开发一个图像处理应用,它提供了诸如图像裁剪,锐化,模糊和增色等功能.一种组织代码的方式是将所有实现同一功能的代码放…
开篇先来个Go语言的吉祥物-金花鼠Gordon. golang是谷歌2009年发布的开源编程语言,截止目前go的release版本已经到了1.10.go语言的开发人员都是计算机界大神一般的存在: Thompson:1983年图灵奖(Turing Award)和1998年美国国家技术奖(National Medal of Technology)得主.他与Dennis Ritchie是Unix的原创者.Thompson也发明了后来衍生出C语言的B程序语言. Pike:曾是贝尔实验室(Bell Lab…
Go语言公开或未公开的标识符的基本概念 Go语言支持从包里公开或者隐藏标志符,通过这个特性,可以让用户按照自己的规则控制标识符的可见性. Go语言中的可见性,是通过声明类型的大小写来进行区别的. 例如下面的代码 // Package counters provides alert counter support. package counters type alertCounter int 这里 alertCounter 就是外部不可见的, 此时如果在main包中的main方法想要访问这个内部的…
Go入门 Go介绍 部落图鉴之Go:爹好还这么努力? 环境配置 安装 下载源码编译安装 下载相应平台的安装包安装 下载地址:https://golang.org/dl/ Linux上的apt-get,yum,Mac上的homebrew 安装 安装完成后命令行输入go,如果显示帮助信息则安装成功 GOPATH GOPATH:用来存放用户的Go源码,Go的可运行文件,以及相应的编译之后的包文件 src 存放源代码,使用go get下载的代码会放到这个目录 pkg 编译后生成的文件(比如:.a) bi…
日期:2014年7月30日   1.定义:包时函数和数据的集合.使用package关键字定义一个包,文件名不需要与包名一致,包名约定使用小写字符,Go包可以由多个文件组成,但是需要使用相同的package<name>,包中方法的调用方式:<packag>.Fuction()   现在新建一个文件even.go,even.go的文件内容如下: package even //判断是否是偶数 func Even(i int) bool {    return i % 2 == 0 } /…
HelloWorld 我们先看看一个最简单的HelloWorld代码 package main import "fmt" func main() { fmt.Println("Hello, World!") } 这段代码可以在控制台输出 "Hello, World!" 下面让我们来刨析一下此段代码 第一行的 package main  定义了该程序的包名为 main ,main的功能同其它语言一样,都代表着程序的主要部分/入口,每一个应用都应该有…