随笔分类 - Go初识
摘要:1.并发的启动,非常简单,没有什么额外操作,只需要加上go即可。func Afuntion(para1, para2, para3, ...) { // Do some process // ...}func main() { go Afuntion(para1, para2, para3, ......
阅读全文
摘要:1.匿名结构体1.全局配置结构体var config struct {// 定义一个用于全局配置结构体 APIKey string OAuthConfig oauth.Config}config.APIKey = "BADC0C0A"2.data := struct {//匿名...
阅读全文
摘要:package main//支持任意类型添加import ( "fmt" "sync")type inter interface{}type Set struct { m map[inter]bool sync.RWMutex}func New() *Set { return &Set{ m: m...
阅读全文
摘要:并发goroutinegoroutine 是 Go 并行设计的核心。goroutine 说到底其实就是线程,但是他比线程更小,十几个 goroutine 可能体现在底层就是五六个线程,Go 语言内部帮你实现了这些 goroutine之间的内存共享。执行 goroutine 只需极少的栈内存(大概是 ...
阅读全文
摘要:什么是interface简单的说,interface 是一组 method 的组合,我们通过 interface 来定义对象的一组行为。如何实现interface?//Human 对象实现 Sayhi 方法func (h *Human) SayHi() { fmt.Printf("Hi, I am ...
阅读全文
摘要:method带有接收者的函数,我们称为 methodfunc (r ReceiverType) funcName(parameters) (results)package mainimport ( "fmt" "math")type Rectangle struct { width, height ...
阅读全文
摘要:main函数和init函数虽然一个 package里面可以写任意多个 init 函数,但这无论是对于可读性还是以后的可维护性来说,我们都强烈建议用户在一个 package 中每个文件只写一个 init 函数。Go 程序会自动调用 init()和 main(),所以你不需要在任何地方调用这两个函数。每...
阅读全文
摘要:deferGo 语言中有种不错的设计,即延迟(defer)语句,你可以在函数中添加多个 defer 语句。当函数执行到最后时,这些 defer 语句会按照逆序执行,最后该函数返回。特别是当你在进行一些打开资源的操作时,遇到错误需要提前返回,在返回前你需要关闭相应的资源,不然很容易造成资源泄露等问题。...
阅读全文
摘要:函数是 Go 里面的核心设计,它通过关键字 func 来声明,它的格式如下:func funcName(input1 type1, input2 type2) (output1 type1, output2 type2) {//这里是处理逻辑代码//返回多个值return value1, value...
阅读全文
摘要:1.ifGo 的 if 还有一个强大的地方就是条件判断语句里面允许声明一个变量,这个变量的作用域只能在该条件逻辑块内,其他地方就不起作用了,如下所示// 计算获取值 x,然后根据 x 返回的大小,判断是否大于 10。if x := computedValue();x > 10 {fmt.Printl...
阅读全文
摘要:1.变量的定义:var VarName Typevar vname1, vname2, vname3 typevar variableName type = valuevar vname1, vname2, vname3 type= v1, v2, v3var vname1, vname2, vna...
阅读全文