不灭的焱

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

作者:php-note.com  发布于:2017-06-25 20:50  分类:Go基础 

摘录一:

Go 1.3 的 sync 包中加入一个新特性:Pool。

官方文档可以看这里 http://golang.org/pkg/sync/#Pool

这个类设计的目的是用来保存和复用临时对象,以减少内存分配,降低CG压力。

作者:php-note.com  发布于:2017-05-26 20:47  分类:Go基础 

关于管道 Channel

  1. Channel 用来同步并发执行的函数并提供它们某种传值交流的机制。
  2. Channel 的一些特性:通过 channel 传递的元素类型、容器(或缓冲区)和 传递的方向由“<-”操作符指定。
  3. c <- 123,把值 123 输入到管道 c,<-c,把管道 c 的值读取到左边,value := <-c,这样就是读到 value 变量里面。
作者:php-note.com  发布于:2017-05-23 20:46  分类:Go基础 

错误 和 异常 处理是程序的重要组成部分,我们先看看下面几个问题:

  1. 错误 和 异常 如何区分?
  2. 错误处理的方式有哪几种?
  3. 什么时候需要使用异常终止程序?
  4. 什么时候需要捕获异常?
  5. ...
作者:php-note.com  发布于:2017-05-22 20:46  分类:Go基础 

Go 的基本类型共有 18 个,其中 int 和 uint 的实际宽度会根据计算架构的不同而不同。在 386 计算架构下,它的宽度为 32 比特,即 4 字节。在 amd64 (有时也称为 x86-64)计算架构下,它们的宽度为 64 比特。即 8 字节。

byte 可以看作类型 uint8 的别名类型,而 rune 可以看作 int32 的别名类型。rune 类型专用于存储 Unicode 编码的 单个字符

作者:php-note.com  发布于:2017-05-21 20:44  分类:Go基础 

基本构成要素

Go 的语言符号 又称 词法元素,共包括 5 类内容——标识符(identifier)、关键字(keyword)、字面量(literal)、分隔符(delimiter) 和 操作符(operator),它们可以组成各种表达式 和 语句,而后者都无需以分号结尾。

作者:php-note.com  发布于:2017-04-30 20:38  分类:Go基础 

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基础 

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基础 

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

 一、命令行语法

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

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

作者:php-note.com  发布于:2017-04-18 20:32  分类:Go基础 

基本类型

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

作者:php-note.com  发布于:2017-04-16 20:31  分类:Go基础 

原文:Fundamentals of concurrent programming

译者:youngsterxyf

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

  • 运行期并发线程(goroutines)
  • 基本的同步技术(管道和锁)
  • Go语言中基本的并发模式
  • 死锁和数据竞争
  • 并行计算