go语言学习

Go语言学习笔记(语法篇)

我是研究僧i 提交于 2020-04-24 05:38:39
Go语言的控制结构比Java、C语言都要少,只有很简单的几个,语法与也略有不同。 Go语言的保留关键字 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var 运算符 * / % << >> & &^ + - | ^ && || ! if if中的条件不需要用中括号()给包含起来。 a := 1 b := 2 c := 3 if a < b && b < c { fmt.Println(true) } else { fmt.Println(false) } 而且if接受初始化语句,初始化的变量为一个局部变量。 if f, err := os.Open("c:/hello.go"); err == nil { fmt.Println(f.Name()) } else { fmt.Println(err) } goto 在Java里这是一个保留关键字,但没有任何实际作用。goto用不好容易造成程序的逻辑混乱。下面用Lable标识一个标签,goto可以将执行跳转到这个标签位置,注意标签是大小写敏感的。 func myfunc() { i :

Go语言学习笔记(练习)

喜夏-厌秋 提交于 2020-03-02 04:34:45
斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*) 递归实现 package main import ( "fmt" ) func main() { for i := 0; i < 10; i++ { nums := fibonacci(i) fmt.Println(nums) } } func fibonacci(num int) int { if num < 2 { return 1 } return fibonacci(num-1) + fibonacci(num-2) } 闭包实现 Go的闭包实现,摘自golang官网,闭包下次在详细介绍一下 package main import "fmt" // fib returns a function that returns // successive Fibonacci numbers. func fib() func() int { a, b := 0, 1 return func() int { a, b = b, a+b return a } } func main() { f := fib() // Function calls are evaluated