zoukankan      html  css  js  c++  java
  • Golang基础之常量和变量

    1、关键字

    关键字是指编程语言中预先定义好的具有特殊含义的标识符。 关键字和保留字都不建议用作变量名。

        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
    

    2、变量

    变量类型:整型、浮点型、布尔型等
    Go语言中的每一个变量都有自己的类型,并且变量必须经过声明才能开始使用。

    2.1、声明变量

    普通声明变量
    变量声明以关键字var开头,变量类型放在变量的后面,行尾无需分号。

    var 变量名 数据类型
    

    需要一个一个的指定变量,并且还需要指定数据类型

    var name string
    var age int
    var isOk bool
    

    定义一个变量列表,类型在后面

    var c,python,vue bool
    

    全局声明变量
    全局方式声明变量可以不被调用

    var (
    	name string // ""
    	age int     // 0
    	isOk bool   // false
    )
    

    2.2、变量赋值

    首先需要声明变量var 变量名 变量类型,而后在根据变量名进行赋值变量名=值

    常规方法

    package main
    import "fmt"
    
    
    // 批量声明
    var (
    	name string
    	age int
    	isOk bool
    )
    
    func main()  {
    	name = "jack"
    	age = 21
    	isOk = true
    	// Go语言中非全局变量声明后必须使用,不使用就编译不过去
    	fmt.Print(isOk) // 在终端输出要打印的内容
    	fmt.Println()
    	fmt.Printf("name: %s
    ",name) // %s 占位符 使用name这个变量的值去替换占位符
     	fmt.Println(age) // 打印完指定的内容之后会在后面加一个换行符
      
      // 声明变量同时赋值
    	var s1 string = "王"
    	fmt.Println(s1)
      
      // 类型推导(根据值判断该变量是什么类型)
    	var s2 = "20"
    	fmt.Println(s2)
    }
    

    2.3、声明短变量

    可省略var,注意:=左侧如果没有声明新的变量,就产生编译错误,必须在函数里使用,格式:

    变量名 := 值
    

    实例:

    name := "jack"
    

    2.4、匿名变量

    在使用多重赋值时,如果想要忽略某个值,可以使用匿名变量。匿名变量用一个下划线_表示,例如:

    func foo() (int, string) {
    	return 10, "Jie"
    }
    func main() {
    	x, _ := foo()
    	_, y := foo()
    	fmt.Println("x=", x)
    	fmt.Println("y=", y)
    }
    

    匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明

    注意事项:
    1.函数外的每个语句都必须以关键字开始(var,const,func等)
    2.:=不能使用在函数外
    3._多用于占位,表示忽略值

    3、常量

    相对于变量,常量就是恒定不变的值,多用于定义程序运行期间不会改变的那些值。常量的声明和变量的声明非常类似,只是把var换成了const

    const pi =3.124532
    

    批量声明常量

    const (
    	statusOK = 200
    	notFound = 404
    )
    

    特殊声明常量
    批量声明常量时,如果某一行声明后没有赋值,默认值就和上一行一致

    const (
    	n1 = 100
    	n2
    	n3
    	n4 = 101
    	n5
    )
    

    4、iota

    iota是Go语言的常量计数器,只能在常量的表达式中使用
    iota在const关键字出现时被重置为0,const中每新增一行常量声明将使iota计数一次(isto可理解为const语句块中的行索引)。使用iota能简化定义,在定义枚举时很有用。

    举个例子

    const(
    	a1 = iota  // 0
    	a2         // 1
    	a3         // 2
    )
    

    几种常见的iota示例
    使用_跳过某些值

    const  (
    	b1 = iota   // 0
    	b2          // 1
    	_          
    	b3          // 3
    )
    

    iota声明中间插队

    const (
    	c1 = iota  // 0
    	c2 = 100   // 100
    	c3 = iota  // 2
    	c4         // 3
    )
    

    多个iota定义在一行

    const (
       d1,d2= iota + 1,iota + 2 // d1:1,d2:2
       d3,d4= iota + 1,iota + 2 // d3:2,d4:3
    )
    

    定义数量级

    const (
    	_ = iota
    	KB = 1 << (10*iota)
    	MB = 1 << (10*iota)
    	GB = 1 << (10*iota)
    	TB = 1 << (10*iota)
    	PB = 1 << (10*iota)
    )
    
  • 相关阅读:
    Could not load file or assembly 'Microsoft.Practices.EnterpriseLibrary.Common, Version=5.0.414.0, ...
    问题:ORA-28000: the account is locked 用户锁住了。
    oracle连接数据库报错:ORA-01034: ORACLE not available(Oracle 不存在),ORA-27101: shared memory realm does not exist
    数据抽取Sql语句
    在Eclipse中部署Maven多模块项目
    Struts 学习记录
    eclipse中git插件无法向远程仓库提交tag的问题
    goldGrid-VBA-EXCLE处理
    SqlBulkCopy效率低下原因分析
    各种奇葩小问题
  • 原文地址:https://www.cnblogs.com/jasonminghao/p/12295069.html
Copyright © 2011-2022 走看看