从零学go之基础语法<一>

一、标志符

Go语言中标识符由字母数字和_(下划线)组成,并且只能以字母和_开头。
举几个例子:abc,a12,_abc, _123

二、关键字

    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

三、37个保留字

Constants:   true  false  iota  nil

    Types:   int  int8  int16  int32  int64  
             uint  uint8  uint16  uint32  uint64  uintptr
             float32  float64  complex128  complex64
             bool  byte  rune  string  error

Functions:   make  len  cap  new  append  copy  close  delete
             complex  real  imag
             panic  recover

四、可见性

  1)声明在函数内部,是函数的本地值,类似private
  2)声明在函数外部,是对当前包可见(包内所有.go文件都可见)的全局值,类似protect
  3)声明在函数外部且首字母大写是所有包可见的全局值,类似public

五、声明方式

var(声明变量), const(声明常量), type(声明类型) ,func(声明函数)。

1、标准声明

var 变量名 变量类型
例如:var name string

2、批量声明

var (
    a string
    b int
    c bool
    d float32
)

六、变量初始化

1、标准初始化

var 变量名 类型 = 表达式
var name string = "123"
var age int = 18
var name, age = "123", 20

2、类型推导,编译器会根据等号右边的值来推导变量的类型完成初始化,从而初始化时可以省略类型

var name = "123"
var age = 1

3、短变量声明,不能用简短声明方式来单独为一个变量重复声明,:=左侧至少有一个新变量,才允许多变量的重复声明。这里有个坑,会覆盖全局变量,且不会报错。

func main() {  
    one := 0
    one := 1 // error: no new variables on left side of :=
}
func main() {
    one := 0
    one, two := 1, 2    // two 是新变量,允许 one 的重复声明。
}

4、匿名变量,在使用多重赋值时,如果想要忽略某个值,可以使用'_' 。匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。:=不能使用在函数外。‘‘_’’多用于占位,表示忽略值。

func foo() (int, string) {
    return 10,"123";
}
func main() {
    x, _ := foo()
}

七、常量

1、声明跟变量一样,只是把var变成const

const pi = 3.14159
const (
    pi = 3.14159
    e = 2.7182
)

八、iota,常量计数器

const (
        n1 = iota //0
        n2        //1
        n3        //2
        n4        //3
    )
const (
        a, b = iota + 1, iota + 2 //1,2
        c, d                      //2,3
        e, f                      //3,4
    )

 

posted @ 2022-04-12 14:54  许轩霖  阅读(39)  评论(0编辑  收藏  举报