不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2017-04-30 20:38  分类:Go/Python  编辑

1、判断 类型

类似于 JavaScript 中 typeof 和 Java 中 instanceof

var a interface{}
newA, ok := a.(string)
// 如果 ok 是 true,则说明 变量 a 是字符串类型,而 newA 就是 string 类型的变量,a 的实际值
//
作者:php-note.com  发布于:2017-04-20 20:37  分类:Go/Python  编辑

Golang 判断文件是否存在有点怪异,是根据在操作文件时返回的错误信息来判断的,而不能直接根据路径判断

版本1:

func IsExists(path string) (bool, error) {
	_, err := os.Stat(path)
	if err == nil {
		return true, nil
	}
	if os.IsNotExist(err) {
		return false, nil
	}
	
	return false, err
}
作者:php-note.com  发布于:2017-04-19 20:33  分类:Go/Python  编辑

Go 的 flag 包可以解析命令行的参数。

 一、命令行语法

命令行语法主要有以下几种形式:

cmd -flag       // 只支持bool类型
cmd -flag=xxx
cmd -flag xxx   // 只支持非bool类型

作者:php-note.com  发布于:2017-04-18 20:32  分类:Go/Python  编辑

基本类型

基本类型是 Go 语言自带的类型,比如 数值浮点字符串布尔数组错误 类型,他们本质上是原始类型,也就是不可改变的,所以对他们进行操作,一般都会返回一个新创建的值,所以把这些值传递给函数时,其实传递的是一个值的副本。

作者:php-note.com  发布于:2017-04-16 20:31  分类:Go/Python  编辑

原文:Fundamentals of concurrent programming

译者:youngsterxyf

本文是一篇并发编程方面的入门文章,以Go语言编写示例代码,内容涵盖:

  • 运行期并发线程(goroutines)
  • 基本的同步技术(管道和锁)
  • Go语言中基本的并发模式
  • 死锁和数据竞争
  • 并行计算
作者:php-note.com  发布于:2017-04-15 20:30  分类:Go/Python  编辑

通常情况下,函数向其调用方报告错误的方式都是返回一个 error 类型的值。但是,当遇到致命错误的时候,很可能会使程序无法继续运行。这时,上述错误处理方式就太不适合了,Go 推荐通过调用 panic 函数来报告致命错误。

作者:php-note.com  发布于:2017-04-15 20:29  分类:Go/Python  编辑

Go 还有一些特有的流程控制语句,其中一个就是 defer 语句。该语句用于延迟调用指定的函数,它只能出现在函数的内部,由 defer 关键字以及针对某个函数的调用表达式组成。这里被调用的函数称为 延迟函数。一个简单的例子如下:

func outerFunc()  {
	defer fmt.Println("函数执行结束前一刻才会被打印")
	fmt.Println("第一个被打印")
}
作者:php-note.com  发布于:2017-04-14 20:29  分类:Go/Python  编辑

sync.Once.Do(f func()) 是一个非常有意思的东西,能保证 once 只执行一次,无论你是否更换 once.Do(xx) 这里的方法,这个 sync.Once块 只会执行一次。

作者:php-note.com  发布于:2017-03-27 20:24  分类:Go/Python  编辑

[荐] Gitea:Git with a cup of tea,在 Gogs 基础上,发展起来的 自助 Git 服务系统。Gogs是一个个人维护的版本,而Gitea是一个社区组织维护的,版本迭代更新快

[github] [官网] [二进制安装]

搭建过程如下:

下载二进制包

建议到官网上 下载 执行包,github 上下载太慢。CentOS 64 位系统,选择最新版的:gitea-1.1-linux-amd64。

下载后,重命名为 gitea,存放到服务器上的物理路径为: /fiisoo/go/gitea

作者:php-note.com  发布于:2017-03-10 19:27  分类:Go/Python  编辑

2016年国庆节(10月1日)开始接触 Go 语言,记录一下它的 版本发布 与 TIOBE 排名:

Golang 排行榜
月份 版本 排名 备注
2012.03 1.0    
       
2015.08 1.5.0   v1.5 发布,完全移除 C,使用 Go 编译 Go
2015.09 1.5.1    
2015.12 1.5.2