• 从零学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
        )
  • 相关阅读:
    [HNOI2012]永无乡
    [HNOI2011]括号修复 / [JSOI2011]括号序列
    [NOI2005]维护数列
    文艺平衡树(Splay)
    SP2713 GSS4
    SP1716 GSS3
    Cookie和Session
    Session和Cookie的区别与联系
    Django ORM 多对多操作 使用聚合函数和分组 F查询与Q查询
    csrf攻击
  • 原文地址:https://www.cnblogs.com/choii/p/16135174.html
Copyright © 2020-2023  润新知