Go基础之变量和常量

标识符与关键字

标识符

  • 在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名、常量名、函数名等等。 Go语言中标识符由字母数字和_(下划线)组成,并且只能以字母和_开头。 举几个例子:aaa, _, _bb3, a123

关键字

  • 关键字是指编程语言中预先定义好的具有特殊含义的标识符。 关键字和保留字都不建议用作变量名,go语言中有25个关键字
    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

以上关键字和保留字需有印象即可,后面用的多了就会熟悉并记住

变量和常量

变量和常量和其他语言的定义差不多,具体看以下示例

package main

import (
	"fmt"
)

// 定义常量
const p1 = 1000
const p2 = "测试常量"

// 多个常量定义
const (
	p3 = 1
	p4 = "多个"
)

// 多个相同常量
const (
	n1 = 100
	n2
	n3
	n4
)

// iota是go语言的常量计数器,只能在常量的表达式中使用。
const (
	t1 = iota
	t2
	t3
	t4
)

// iota 跳过某个值
const (
	y1 = iota
	y2
	_
	y4
)

//iota 穿插值

const (
	u1 = iota
	u2 = 100
	u3 = iota
	u4 = 100
)

// iota 多个定义
const (
	i1, i2 = iota + 1, iota + 2
	i3, i4 = iota + 3, iota + 4
)

func main() {
	//定义变量结构 var 变量名 类型
	var name string

	//批量声明
	var (
		age int
		sex bool
	)

	//变量初始化 var 变量名称 类型 = 表达式
	var test string = "小刘"

	fmt.Printf("声明变量 %#v %#v %#v %#v\n", name, age, sex, test)

	//多个变量初始化
	var a, b = "test1", 22

	//类型推导
	var A = "大A"
	var B = 2
	var C = true

	fmt.Printf("变量初始化 %#v %#v %#v %#v %#v\n", a, b, A, B, C)
	//短变量
	test1()
	//匿名变量
	aa, _ := test2()
	_, bb := test2()
	fmt.Printf("匿名变量声明 下划线代表忽略 %#v %#v\n", aa, bb)

	//测试常量
	fmt.Printf("常量  %#v %#v  %#v %#v\n", p1, p2, p3, p4)

	//多个相同常量
	fmt.Printf("相同常量  %#v %#v  %#v %#v\n", n1, n2, n3, n4)

	//iota 常量
	fmt.Printf("iota常量  %#v %#v  %#v %#v\n", t1, t2, t3, t4)

	//iota 跳过值
	fmt.Printf("iota常量跳过值  %#v %#v  %#v\n", y1, y2, y4)

	//iota 穿插值
	fmt.Printf("iota常量穿插值  %#v %#v %#v %#v\n", u1, u2, u3, u4)

	//iota 多个定义
	fmt.Printf("iota常量穿插值  %#v %#v %#v %#v\n", i1, i2, i3, i4)
}

func test1() {
	m := 10
	n := "test"
	fmt.Printf("短变量声明 %#v %#v\n", m, n)
}

func test2() (int, string) {
	return 1000, "hello"
}

返回结果打印

北溟有鱼QAQ博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论