随笔分类 - Golang
摘要:定义 函数可以嵌套定义(嵌套的函数一般为匿名函数),即在一个函数内部可以定义另一个函数。Go语言通过匿名函数支持闭包,C不支持匿名函数,在C11中通过Lambda表达式支持闭包。 闭包是由函数及其相关引用环境组合而成的实体(即:闭包=函数+引用环境)。 引用环境的定义: 在函数式语言中,当内嵌函数体
阅读全文
摘要:# Go以及调试工具dlv安装及使用 ## 安装go ```bash wget https://studygolang.com/dl/golang/go1.14.1.linux-amd64.tar.gz tar -C /usr/local -zxvf go1.14.1.linux-amd64.tar
阅读全文
摘要:GO核心编程 简介 go语言特点: go具有垃圾回收机制 从语言层面支持并发,goroutine,高效利用多核,基于CPS并发模型实现(重要特点) 吸收了管道通信机制,实现不同goroutine之间的互相通信 函数可以返回多个值 切片、延时执行defer 继承C语言很多思想,引入包的概念,用于组织程
阅读全文
摘要:竞态 竞态是指多个goroutine按某些交错顺序执行时无法给出正确的结果。竞态对于程序是致命的,因为它们可能潜伏在程序中,出现的频率也很低,有可能仅在高负载环境或者使用特定平台、架构时才出现。数据竞态发生于两个goroutine并发读写同一个变量并且至少其中一个是写入时。当发生数据竞态的变量类型是
阅读全文
摘要:并发编程表现为程序由若干个自主的活动单元组成。go有两种并发编程风格,一种是goroutine和通道,它们支持通信顺序进程(CSP),CSP是一个并发模式,在不同的执行体(goroutine)之间传递值,但是变量本身局限于单一的执行体。还有一种共享内存多线程的传统模型,它们和在其他主流语言中使用线程
阅读全文
摘要:很多面向对象语言都有借口的概念,Go语言的接口独特之处在于它是隐式实现的。 接口定义和实现 /* 定义接口 */ type interface_name interface { method_name1 [return_type] method_name2 [return_type] method_
阅读全文
摘要:函数 函数声明 go语言函数支持多返回值。 func name(parameter-list)(result-list){ body } 当函数存在返回列表的时候,必须显示以return结束。(除了break,抛异常等操作) func sub(x,y int) (z int){ z = x-y;re
阅读全文
摘要:go语言主要有四种复合数据类型,数组、slice、map、结构体。 数组和结构体都是聚合类型,他们的值由内存中的一组变量构成。数组和结构体的长度都是固定的,而slice和map都是动态的数据结构。 数组 var a [3]int //定义 for i,v:=range a{ fmt.Printf("
阅读全文
摘要:程序结构 基础部分仅仅列举和其他语言不一样的地方(C语言为例)。 声明 Go语言有四个主要声明:var、const、type、func,类似于C语言中的变量,常量,结构体和函数。 package main //表明文件属于哪个包 import "fmt" const boilingF = 212.0
阅读全文