一、变量

1.单个变量的声明

go语言中,所有变量都必须先声明在使用,下面是声明变量和赋值方法:

  • 先声明后赋值: var <变量名称> <变量类型> 赋值:变量的赋值格式: <变量名称> = <表达式>
  • 声明的同时赋值:var <变量名称> <变量类型> = <表达式> (简写为 变量名称 := 表达式)
    示例:
package main
 
import "fmt"

func main() {
    var a string /* 声明一个变量名为a,类型为字符串的变量 */
    a = "pippen" /* 对a变量赋值*/
    var age int = 22 /* 声明并赋值变量 */
    fmt.Println(a,age)
}

2.多个变量声明

  • 先声明后赋值:var <变量1>,<变量2>,<变量3> <变量类型> 赋值 : <变量1>,<变量2> = 值1,值2
  • 声明同时赋值 :var <变量1>,<变量2> = 值1,值2 可简写为: <变量1>,<变量2> = 值1,值2
  • 简写(自动推导类型): <变量1>,<变量2> := 值1,值2
  • 多个变量还可以使用var()声明
package main
 
import "fmt"
func main() {
 
    var a,b int
    a,b = 1,2
    var c,d = 3,"wd" /* 类型自动推断 */
    e, f := 4, "hello" /* 简写 */
    fmt.Println(a,b,c,d,e,f)
}

使用var()声明

package main
 
import "fmt"
 
func main() {
 var (
    a int //默认值为0
    b string // 默认值为空字符串("")
    c = 3 
 )
    fmt.Println(a,b,c)
}

3. 匿名变量

由于在Go语言中,你定义的变量必须都要使用,如果定义了但不用就会报错。但有些变量后面确实不用,就可以使用匿名变量。
_:匿名变量,丢弃数据不进行处理,匿名变量配合函数返回值使用才有价值

func main() {
    //匿名变量
    //_匿名变量  在后面学习中涉及到函数多个返回值时 使用匿名变量
    a, _, _ := 10, 20, 30
 
    fmt.Println(a)
    //fmt.Println(_)//error 匿名变量数据不能打印 
}

4.数据交换

变量名1,变量名2 = 变量名2,变量名1
这个比Java中的方便的多
具体如下:

package main
 
import "fmt"
 
func main() {
    a := 10
    b := 20
 
    a, b = b, a
 
    fmt.Println(a) // 20
    fmt.Println(b) // 10
}

5.变量名

命名原则:

  • 首字符可以是任意的Unicode字符或者下划线
  • 剩余字符可以是Unicode字符、下划线、数字

不能作为用以下关键字作为变量名
||||||
|-------|-------|-------|-------|-------|
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

6.可见性

可见性即对包外可见,当其他包调用当前包的变量时候是否允许可见(可访问)。

  • 变量开头字符大写,表示可见
  • 变量开头字母非大写,则表示私有,不可见

二、常量

常量是一个简单值的标识符,在程序运行时,不会被修改的量。
常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。

1. 定义常量语法

const 名称 类型 = value

2. 多个常量定义语法

const (
    a = 0 //类型自动推倒
    b = 1
    c = 2
)

3.iota解释

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

在每一个const关键字出现时,被重置为0,然后再下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1。

iota 可以被用作枚举值

const (
    a = iota
    b = iota
    c = iota
)

第一个 iota 等于 0,每当 iota 在新的一行被使用时,它的值都会自动加 1;所以 a=0, b=1, c=2 可以简写为如下形式

const (
    a = iota
    b
    c
)

用法

package main
 
import "fmt"
 
func main() {
 const (
   a = iota //0
   b   //1
   c   //2
   d = "ha" //独立值,iota += 1
   e   //"ha" iota += 1
   f = 100 //iota +=1
   g   //100 iota +=1
   h = iota //7,恢复计数
   i   //8
 )
 fmt.Println(a,b,c,d,e,f,g,h,i)
}
打赏
支付宝 微信
上一篇 下一篇