代码改变世界

17_defer(延迟调用)关键字的使用

2019-08-31 16:12 by StevenZhao, 230 阅读, 0 推荐, 收藏, 编辑
摘要:1、defer是延迟调用关键字,只能在函数内部使用 2、总是在main函数结束前调用(和init用法相对) 3、如果有多个defer 遵循先进后出的原则 4、和匿名函数同时使用时,如果匿名函数带有参数,则先把参数传进去,最后调用 例如:package main import "fmt" func Test() { defer fmt.Println("111111") //最后执行 defer f 阅读全文

16_闭包的一些特性

2019-08-31 16:02 by StevenZhao, 158 阅读, 0 推荐, 收藏, 编辑
摘要:闭包函数的特性:就相当于引用传递,在闭包函数内改变外部变量,并不释放,而是彻底修改,直到闭包函数不再使用 package main import "fmt" //函数的返回值是一个闭包函数,返回函数类型 func Test01() func() int { var a int //默认值为0 return func() int { a++ return a * a } } //普通函数 func 阅读全文

15_匿名函数和闭包的使用

2019-08-31 15:56 by StevenZhao, 181 阅读, 0 推荐, 收藏, 编辑
摘要:1、在go语言中,所有的匿名函数(规范称为:函数字面量)都是闭包函数,匿名函数不需要定义函数名的一种函数 实现形式,它并不是一个新概念,可以追溯到语言 2、闭包:就是一个“函数”捕获了和它在同一个作用域的其他常量。 这就意味着当闭包被调用的时候,不管程序在什么地方调用,闭包都能够使用这些常量或者变量。 它并不关心这些捕获的常量和数量是否已经超越了作用域,所以只要这些闭包还在使用,这些变量就还会存在 阅读全文

14_函数类型和回调函数

2019-08-31 15:50 by StevenZhao, 332 阅读, 0 推荐, 收藏, 编辑
摘要:1、定义一个函数类型:函数类型是定义一个函数接口,使具有相同参数、相同返回值的函数共同使用同一个借口 2、 关键字用type定义3、声明一个函数类型,func 后面没有函数名,没有大括号 例如: package main import "fmt" type Ftest func(int, int) int //这个时候就相当于一个数据类型(例如 int) //函数类型还可以作为另一个函数的参数进行 阅读全文

13_函数的基本使用简介

2019-08-31 15:42 by StevenZhao, 154 阅读, 0 推荐, 收藏, 编辑
摘要:go语言中,函数一些规则:/*函数名规定首字母大写为public,首字母小写为private public允许被其他函数调用 函数的关键字是func 格式为: func FunName(参数列表)(返回值列表){ //函数体 return //返回值 } */ 例如:package main import "fmt" //无参无返回值,返回值列表为空,可以不写 func Print() { fmt 阅读全文

12_goto语句的使用

2019-08-31 15:37 by StevenZhao, 673 阅读, 0 推荐, 收藏, 编辑
摘要:1、goto是一个关键字,其作用是运行到goto语句进行跳转,立即执行goto后面所对应标签的语句2、结构:goto 标签名(任意起)3、goto语句尽量不要跨函数使用,否则会使代码看起来非常乱,可读性差例如:package main import "fmt" func main() { for i := 1; i < 19; i++ { fmt.Println("hello Steven %d" 阅读全文

11_for语句的使用

2019-08-31 15:31 by StevenZhao, 127 阅读, 0 推荐, 收藏, 编辑
摘要:for是一种循环结构go语言中,for语句结构: for 初始语句; 条件语句; 迭代后语句 { 代码体 }例子: package main import "fmt" import "time" func main() { var d int for d = 1; d < 10; d++ { fmt.Println("当前是第%d循环", d) time.Second //沉睡一秒 if d == 阅读全文

10_switch语句的使用

2019-08-31 15:12 by StevenZhao, 238 阅读, 0 推荐, 收藏, 编辑
摘要:/* switch 语句和c语言的用法不同 1、go语句是默认添加break语句的,但c不是默认的 2、go语句添加一个fallthrough语句,可以顺序执行接下来的结构 3、switch在关键词后面可以添加赋值语句,用分号和后面的变量分开,更加的便捷 */ package main import "fmt" func main() { //a := 11 switch a := 1; a { 阅读全文

09_if条件语句的使用

2019-08-31 15:08 by StevenZhao, 191 阅读, 0 推荐, 收藏, 编辑
摘要:1、条件语句是用来判断给定的条件是否满足(表达式值是否为0),并根据判断的结果(真或假)决定执行的语句2、go语言和C语言的条件语句在语法格式上大体相似,但是还是有略微的不同,具体的细节如下例子:package main import "fmt" func main() { var b int //if 条件语句可以在判断位置增加一个赋值语句,也可以不加 //if 判断语句没有括号,这个和C语言不 阅读全文

08_类型别名(类型声明)

2019-08-31 14:59 by StevenZhao, 237 阅读, 0 推荐, 收藏, 编辑
摘要:1、type 声明定义一个新的命名类型,它和某个已有类型使用同样的底层类型2、命名类型提供了一种方式来区别底层类型的不同或者不兼容使用,这样他们就不会在无意中混用。例如package main import "fmt" func main() { //type关键字 type bigint int64 var a bigint fmt.Printf("a type is%T\n", a) //批量 阅读全文
上一页 1 ··· 3 4 5 6 7 8 下一页