Go学习笔记----2,各种语法基础技术使用详解(变量、常量、iota、运算符、条件语句)

Go 语言变量

变量声明

使用var关键字,格式:var xxx type

1,var v int
   v = 1
2,自行判断变量类型 var v = 1
3,省略var,注意:=(声明语句)左侧如果没有生成新的变量,就产生编译错误,格式:v := 1
   例如:var v int 
         v := 1 //编译错误
         v, v1 := 1, 2 //正确,因为有新变量v1,因为 := 是一个声明语句

4,多变量声明
   类型相同的多个变量,非全局变量
   (a) var v, v1, v2 int
       v, v1, v2 = 1, 2, 3
   (b) var v, v1, v2 = 1, 2, 3
   (c) v, v1, v2 := 1, 2, 3
   // 这种因式分解关键字的写法一般用于声明全局变量
   var (
     vname1 v_type1
     vname2 v_type2
   ) 

iota

iota,特殊常量,可以认为是一个可以被编译器修改的常量。

iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。

Go 语言运算符

Go的运算符和C++等语言基本一致,这里简单回顾一下运算符优先级即可。

有些运算符拥有较高的优先级,二元运算符的运算方向均是从左至右。下表列出了所有运算符以及它们的优先级,由上至下代表优先级由高到低:

优先级 运算符
7 ^ !
6 * / % << >> & &^
5 + - | ^
4 == != < <= >= >
3 <-
2 &&
1 ||

Go 语言条件语句

if、if...else等都一样,这里简短说一下Go特有的select语句。

select 语句类似于 switch 语句,但是select会随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。

以下描述了 select 语句的语法:

  • 每个case都必须是一个通信
  • 所有channel表达式都会被求值
  • 所有被发送的表达式都会被求值
  • 如果任意某个通信可以进行,它就执行;其他被忽略。
  • 如果有多个case都可以运行,Select会随机公平地选出一个执行。其他不会执行。 
    否则:
    1. 如果有default子句,则执行该语句。
    2. 如果没有default字句,select将阻塞,直到某个通信可以运行;Go不会重新对channel或值进行求值。

猜你喜欢

转载自blog.csdn.net/xiaomucgwlmx/article/details/88740061