Go语言并发编程基础

多线程(1)

Go线程基本用法

使用go关键字便可以创建一个新的Go线程(goroutine),goruntine是由Go运行时进行管理的轻量级线程,执行

1
go f( x , y , z )

会启动一个新的Go线程并执行

1
f( x , y , z )

其中f,x,y和z的求值发生在当前的线程中,而f的执行发生在新的线程中

阅读更多

Go语言方法和接口基础

概述

几种当前较流行的编程语言在对面向对象编程的设计上都大同小异,Go也不例外,如果理解了面向对象的理念学习起来还是很简单的。

方法

概述

Go语言中没有其他常见的语言中的的概念,它通过其他方法来实现面向对象这一设计。

定义

方法是一类带特殊接收者参数的函数,这个参数写在func关键字和方法名之间。

我们可以为一个结构体类型定义方法:

示例1:method.go

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package main

import (
"fmt"
"math"
)

type Vertex struct {
X, Y float64
}

func (v Vertex) Abs() float64 {
return math.Sqrt(v.X*v.X + v.Y*v.Y)
}

func main() {
v := Vertex{3, 4}
fmt.Println(v.Abs())
}

示例中Abs()方法拥有一个Vertex类型的接收者v,或者也可以说Vertex类型的结构体v拥有一个Abs()方法(函数)。

阅读更多