Go 语言入门指南:基础语法和常用特性解析

65 阅读2分钟

Go基础语法学习

1.基础变量赋值

  • 两种申明变量的方式:
  1. var name 类型 = 值
  2. name := 值 这种就会根据值去自动推导类型
  • 运算符优先级 类似于C或者C++

  • 常量类型 将var改成const const name string = 或者const name =

      package main
    
      import (
              "fmt"
              "math"
      )
    
      func main() {
              var a = "intitial"
              var b, c int = 1, 2 //var只是申明一个变量我们可以在变量后面限制其类型
              var d bool = true
              var e float64   //默认为0
              f := float32(e) //强制类型转化
              g := a + " foo"
              fmt.Println(a, b, c, d, e, f)
              fmt.Println(g)
              const s string = "constant" //常量
              const h = 50000000
              const i = 3e20 / h
              fmt.Println(s, h, i, math.Sin(h), math.Sin(i))
      }
    

2.控制语句

2.1 if else

  • if else 语句
  1. if else 中不像C++中一样,没有小括号()
  2. if else 中无论什么情况都必须加上{} 在c++中可以 if (7 % 2 == 0) return 1; 在go中必须为 if 7 % 2 == 0 {return 1}

2.2 switch

Switch使用方法 switch使用方法与case有几个不同

  • c++中如果在case中不加上break,就会把几个case都遍历了,而go不同
  • c++中case的变量限定类型有限,例如字符类型或者整数类型,而go不限制任何类型,甚至可以不加变量 如果判断条件比较多的话,写switch可能比if else更加的清晰

2.3 循环

Go的 for 循环类似于C,但却不尽相同。它统一了 for 和 while,不再有 do-while 了。它有三种形式,但只有一种需要分号。

  • for要么什么都不写类似于for {}, 这就是死循环, 用break或者continue可以解掉循环
  • 要么都写上for ; ; {}, 且对于循环变量初始化得用申明变量 name := 值不能用var name 变量类型 := 值
package main

import "fmt"

func main() {
    // 循环
    // 在go中没有while循环, do while循环只有for循环
    // for要么什么都不写类似于for {}, 这就是死循环, 用break或者continue可以解掉循环
    // 要么都写上for ; ; {}, 且对于循环变量初始化得用申明变量 name := 值不能用var name 变量类型 := 值

	i := 1
	for ; i <= 3; i++ {
		fmt.Println(i)
	}
	fmt.Println("Ops this new style of for loop")
	for i = 0; i <= 3; {
		fmt.Println(i)
		i = i + 1
	}
	for {
		fmt.Println("loop")
		break
	}
	for n := 0; n < 5; n++ {
		if n%2 == 0 {
			fmt.Println(n, "is even")
		} else {
			fmt.Println(n, "is odd")
		}
	}
}