GO语言常量和变量

标识符与关键字

标识符

人为定义有特殊意义的词,Go语言中标识符由字母数字和_(下划线)组成,并且只能以字母和_开头。

关键字

关键字是指编程语言中预先定义好的具有特殊含义的标识符。
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

GO语言中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

变量

常见变量的数据类型有:整型、浮点型、布尔型等。
Go语言中的变量需要声明后才能使用,同一作用域内不支持重复声明。 并且Go语言的变量声明后必须使用。

GO语言的标准声明格式:
var 变量名 变量类型
例如:var name string
GO语言批量变量声明:

var (
a string
b int
c bool
d float32
)

Go语言在声明变量的时候,会自动对变量对应的内存区域进行初始化操作。每个变量会被初始化成其类型的默认值,例如: 整型和浮点型变量的默认值为0。 字符串变量的默认值为空字符串。 布尔型变量默认为false。 切片、函数、指针变量的默认为nil。
变量初始化的标准格式:
var 变量名 类型 = 表达式
类型推导:
将变量的类型省略,编译器会根据等号右边的值来推导变量的类型完成初始化。
var age =18,会推导为int类型
短变量声明
在函数内部,可以使用更简略的 := 方式声明并初始化变量。
匿名变量
在使用多重赋值时,如果想要忽略某个值,可以使用匿名变量(anonymous variable)。 匿名变量用一个下划线_表示,匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。

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

示例:

package main

import "fmt"

//全局变量
var ares = 666

//定义有两个返回值的函数
func foo() (string, int) {
return "ares", 8888
}

func main() {
var name string
var age int
fmt.Println(name)
fmt.Println(age) //0

var (
    a string
    b int
    c bool
    d string
)
a = "菜鸟"
b = 100
c = true
d = "100"
fmt.Println(a, b, c, d) //菜鸟 100 true 100
//声明变量并且初始化
var x string = "青年路"
fmt.Println(x)  //青年路
fmt.Printf("%s嘿:%d\n", x, b)   //青年路嘿:100
//类型推导,编译器根据变量初始值的类型,指定给变量
var y = 30
var z = true
fmt.Println(y) //30
fmt.Println(z) //true
//简短变量声明,只能用在函数内部
aresxin := "菜鸟" // var aresxin string = "菜鸟"
fmt.Println(aresxin)   //菜鸟

// 调用foo函数
// _ 匿名函数,用于接受不需要的变量值
aa, _ := foo()
_, bb := foo()
aaa, bbb := foo()
fmt.Println(aa)    //ares
fmt.Println(bb)    //8888
fmt.Println(aaa, bbb)  //ares 8888
}

常量

常量是恒定不变的值,多用于定义程序运行期间不会改变的那些值,常量声明为const。
const同时声明多个常量时,如果省略了值则表示和上面一行的值相同。
示例:

const (
n1 = 100
n2 //100
n3 //100
)

iota
iota是go语言的常量计数器,只能在常量的表达式中使用。
示例:

package main

import "fmt"

//常亮,不允许修改

const pi = 3.14

//批量声明常亮
const (
a = 100
b = 1000
c //默认等于上一个常量
d
)

//iota枚举
const (
aa = iota //0
bb
cc
dd
)

// _跳过某个值
const (
n1 = iota //0
n2 // 2
_
n4 //3
)

const (
a1 = iota // 0
a2 = 100 //100
a3 = iota //2
a4 //3
)

//位运算符
const (
_ = iota // iota=0
KB = 1 << (10 * iota) //iota=1,2的十次方
MB = 1 << (10 * iota) //iota=2,2的20次方
GB = 1 << (10 * iota) //iota=3,2的30次方
TB = 1 << (10 * iota) //iota=4,2的40次方
PB = 1 << (10 * iota) //iota=5,2的50次方
)

//多个iota定义在一行
const (
q1, w1 = iota + 1, iota + 2 //iota =0, 1,2
q2, w2 //iota =1 ,2,3
q3, w3 //iota =2.3 .4
)

//递减
const (
_ = iota
aaa = iota * (-1) //-1
bbb //-2
ccc //-3
)

func main() {
fmt.Println(pi) //3.14
fmt.Println(a, b, c, d) //100 1000 1000 1000
fmt.Println(aa, bb, cc, dd) //0 1 2 3
fmt.Println(n1, n2, n4) //0 1 3
fmt.Println(a1, a2, a3, a4) //0 100 2 3
fmt.Println(KB, MB, GB, TB, PB) /1024 1048576 1073741824 1099511627776 1125899906842624
fmt.Println(q1, w1, q2, w2, q3, w3) //1 2 2 3 3 4
fmt.Println(aaa, bbb, ccc) //-1 -2 -3
}

iota总结:

  1. const声明如果不写,默认与上一行一样
  2. 遇到const,iota就初始化为0
  3. const中每新增一行变量声明iota就递增1

原文地址:https://www.cnblogs.com/aresxin/p/GO-yu-yan-chang-liang-he-bian-liang.html

时间: 2024-11-08 05:33:12

GO语言常量和变量的相关文章

C语言常量与变量

对于基本数据类型量,按其值是否可变又分为常量和变量两种. 在程序执行过程中,其值不发生改变的量称为常量,其值可变的量称为变量.它们可与数据类型结合起来分类,例如,可分为整型常量.整型变量.浮点常量.浮点变量.字符常量.字符变量. 常量 在程序执行过程中,其值不发生改变的量称为常量.常量分类: 常量 说明 直接常量(字面量) 可以立即拿来用,无需任何说明的量,例如: 整型常量:12.0.-3: 实型常量:4.6.-1.23: 字符常量:‘a’.‘b’. 符号常量 用标识符代表一个常量.在C语言中,

JavaScript语言常量和变量

我们在上一章中介绍使用JavaScript编写一个HelloJS的小程序,其中我们就用到变量.常量和变量是构成表达式的重要组成部分.常量在声明和初始化变量时,在标识符的前面加上关键字const,就可以把该指定为一个常量.顾名思义,常量是其值在使用过程中不会发生变化,实例代码如下:const NUM=100;NUM标识符就是常量,只能在初始化的时候被赋值,我们不能再次给NUM赋值.变量在JavaScript中声明变量,是在标识符的前面加上关键字var,实例代码如下:var scoreForStud

【Go语言】【3】GO语言常量与变量

一般的语言入门都会讲一堆背景和特性,这样做的目的是为了能让学习者对该语言有一个大概的认识,这也是为何有人推荐正确的读书方法是先粗略地读一遍,然后再详细地读一遍,但这里我想直接进入细节,不是因为个性,而是因为常量和变量是编程语言最基本的组成元素. 一.字面常量 以前在编程时,老员工总是说不要在代码中出现魔鬼数字,什么是魔鬼数字呢?就是在代码中直接写死且只出现一次的数字,例如: func calculatePrice(price float32) float32{ return price * 0.

C语言————常量 、变量、 表达式、 语句详谈

常量 常量(Constant)是程序中最基本的元素,有字符(Character)常量. 整数(Integer)常量.浮点数(Floating Point)常量和枚举常量. 下面看一个例子: printf("character: %c\n  integer: %d\n  floating point: %f\n", '}', 34, 3.14); 常量在程序加载内存的常量区,即.data段 字符常量要用单引号括起来,注意单引号只能括一个字符而不能像双引号那样括一串字符, 字符常量也可以是

Go语言常量与变量初识

标识符和关键字 标识符 标识符只能以字母和_组成,并且只能以字母和_开头. 关键字 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 变量 变量声明 变量需要先声明,再使用.其语法如下: var name string

Swift语言—常量、变量、类型赋值

常量:常量在作用域内不能被赋值且不会发生改变,只读不写,每个常量都必须有唯一的名字和内存空间:关键字:let   变量:变量在作用区域内可以它的值可以被改变,可读可写可覆盖,每个常量都必须有唯一的名字和内存空间:关键字:var   变量类型赋值: Var str = “Hello”   Var s: String = “World”   Var i:Int = 100 Var world:String =”wojiaoadong”

C语言-----常量、变量

存储的数据类型: 计算机存储的数据可分为两种:静态数据和动态数据. 1.静态数据:静态数据一般是永久性的数据,一般存放在硬盘中,文件相对较大. 存储时长:电脑关闭重启后数据不会丢失,只要你不去删除,硬盘不损坏,数据就一直存在不会丢失. 哪些是静态数据:比如:静态数据一般以文件的形式存放在硬盘上,如:文档,视频,音乐,图片等. 2.动态数据:动态数据是指程序在运行的过程中,动态产生的临时数据,一般存储在内存中,内存的存储空间一般都比较小.所以要谨慎有效的使用内存. 存储时长:电脑关闭后,存放在内存

Swift语言指南(一)--语言基础之常量和变量

Swift 是开发 iOS 及 OS X 应用的一门新编程语言,然而,它的开发体验与 C 或 Objective-C 有很多相似之处. Swift 提供了 C 与 Objective-C 中的所有基础类型,包括表示整数的 Int,表示浮点数的 Double 与 Float,表示布尔值的 Bool,以及表示纯文本数据的 String. Swift 还为两个基本集合类型 Array 与 Dictionary 提供了强大的支持,详情可参考 (集合类型)Collection Types. 与 C 语言类

05.C语言数据、常量和变量

C语言数据.常量和变量 图片文字等都是数据 ,在计算中的0和1存储 一.分类 数据分成静态数据和动态数据. 1.静态数据:一些永久性的数据,一般存储在硬盘中,只要硬盘没有损坏数据都是存在的 一般以文件的形式存储在硬盘上,电脑关机启动依然存在 2.动态数据:程序运行过程中,动态产生的临时数据,一般存储在内存中,内存的存储空间一般较小,计算机关闭 后这些数据就会被清除,软件或者电脑关闭则这些临时数据也会被清除. 3.静态数据和动态数据可以转换. 4.为什么不把动态数据存放到硬盘?因为直接访问内存速度