SherlockGy's Blog

  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

Go语言学习之旅16——接收命令行参数

发表于 2019-01-26 | 分类于 程序人生 > Golang
本文字数: 279 | 阅读时长 ≈ 1 分钟

我们如果编写的是Linux或Mac等的命令行程序,需要在执行程序的时候接收相关命令,我们就可以使用os包来实现

阅读全文 »

Go语言学习之旅15——延迟调用defer

发表于 2019-01-26 | 分类于 程序人生 > Golang
本文字数: 716 | 阅读时长 ≈ 1 分钟

defer关键字修饰的语句将获得延时执行的特性,将会在该方法结束前调用

注意:defer语句只能出现在方法内部

defer的使用

1
2
3
4
5
6
7
func main() {
defer fmt.Println("print defer")
fmt.Println("print 1")
}

// print 1
// print defer
阅读全文 »

Go语言学习之旅14——匿名函数和闭包

发表于 2019-01-26 | 分类于 程序人生 > Golang
本文字数: 900 | 阅读时长 ≈ 1 分钟

在go语言当中,匿名函数可以作为一个函数当中的变量,它没有函数名称但是却可以访问其作用域外的变量,这样的能力被称为闭包

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
func main() {

// 01、匿名函数的声明和调用
a := func() {
fmt.Println("hello world")
}
a()

// 02、直接调用匿名函数
func() {
fmt.Println("你好")
}() // ()代表调用函数和传参

// 03、下面演示闭包,匿名函数可以访问函数外的变量
num1 := 10
str1 := "abc"

func() {
fmt.Printf("num1 = %d, str1 = %s\n", num1, str1)
}()

// 04、闭包的参数传递特性测试,由于num1被改变了,所以闭包是传递的引用
func() {
num1 = num1 + 1
fmt.Printf("num1现在等于%d\n", num1)
}()
fmt.Printf("num1现在等于%d\n", num1)
}
阅读全文 »

Go语言学习之旅13——回调函数

发表于 2019-01-26 | 分类于 程序人生 > Golang
本文字数: 475 | 阅读时长 ≈ 1 分钟

使用回调函数可以帮助我们提高代码的灵活性,避免硬编码问题,下面我们就来看一下go语言当中,要如何实现回调吧

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 声明一个函数类型的变量
type FuncMath func(int, int) int

/*
* 用来作为参数传给数学计算方法的函数,代表加法功能
*/
func add(a int, b int) int {
return a + b
}

/*
* 进行数学计算的方法,通过传入函数作为参数来决定其具体作用
*/
func doMath(a int, b int, funcMath FuncMath) int {
return funcMath(a, b)
}

/*
* 程序入口
*/
func main() {
result := doMath(1, 2, add)
fmt.Println(result)
}
阅读全文 »

Go语言学习之旅12——goto和标签

发表于 2019-01-13 | 分类于 程序人生 > Golang
本文字数: 520 | 阅读时长 ≈ 1 分钟

Go语言还是保留了goto这个功能的,但是不建议使用太多,因为会使得代码比较混乱,不易于后续的阅读和维护

goto可以无条件跳转执行的位置,但不能跨函数,需要配合标签label使用

先看这个例子:

1
2
3
4
5
6
7
8
9
10
11
12
func main() {
fmt.Println(1)
goto printThree
fmt.Println(2)
printThree:
fmt.Println(3)
}

/*result:
1
3
*/

如上所示,goto可以跳过代码直接执行标签位置的语句

阅读全文 »
1…8910…23
SherlockGy

SherlockGy

Keep thinking different...

111 日志
38 分类
62 标签
RSS
GitHub E-Mail
友情链接
  • GoLang-飞雪无情的博客
  • Java-酷壳
  • Python-静觅丨崔庆才的个人博客
  • 掘金
  • GoLang中国
  • GoLang中文社区
  • V2EX
  • Microsoft Docs
  • Go语言圣经
© 2020 SherlockGy | 191k | 2:false
由 Hexo 强力驱动 v3.7.1
|
主题 — NexT.Pisces v6.3.0