您现在的位置是:首页 > 技术笔记 > Go语言Go语言

变量

冰山2019-01-10【Go语言】人已围观

简介1.变量
2.变量类型
3.变量声明
4.变量初始化
5.变量赋值
6.自动推导类型
7.多重赋值匿名变量
8.数据置换
9.变量命名规范

1.变量

 

  所谓的变量简单地理解就是用来存储数据的。计算机通过变量来保存数据实际上将数据存储到计算机的内存中,这里可以画一个图来表达一下。

  计算机将内存划分成不同的区域,数据就是存储在这些区域中,那么怎样从这些区域中将数据取出来呢?计算机将每块区域都加上了一串数字,作为编号。通过该编号就可以将数据取出来了,但是问题是,这一串数字是非常难记忆的,为了解决这个问题,可以通过变量的方式来表示存储的数据,如下图:

  给每个存储区域加上了Number1,Number2,Name等符号,这样通过这些符号来存储数据,然后通过这些符号取出数据就非常容易了。这些符号就是变量。
 

2.变量类型

 

      ①布尔类型: 变量取值要么是真(true),要么是假(false),用bool关键字来进行定义,用于条件判断。

  ②浮点型:float64,float32。

  ③字符类型:’’单引号,字符。

  ④字符串类型:””双引号,字符串。

  ⑤ASCII表:

  ⑥

类型 名称 长度 零值 说明
bool 布尔类型 1 false 其值不为真即为假,不可以用数字代表true或false
byte 字节型 1 0 uint8别名
int, uint 整型 - 0 有符号32位或无符号64位
int8 整型 1 0 -128 ~ 127,
uint8 整型 1 0 0 ~ 255
int16 整型 2 0 -32768 ~ 32767,
uint16 整型 2 0 0 ~ 65535
int32 整型 4 0 -2147483648 到 2147483647
uint32 整型 4 0 0 到4294967295(42亿)
int64 整型 8 0 0 到 18446744073709551615(1844京)
uint64 整型 8 0 -9223372036854775808到 9223372036854775807
float32 浮点型 4 0.0 小数位精确到7位
float64 浮点型 8 0.0 小数位精确到15位
string 字符串   "" utf-8字符串
 

3.变量声明

 

      package main

  import "fmt"

  func main(){

  fmt.Println("测试变量定义")

  //1.声明格式 var 变量名 类型,变量声明了,必须要使用

  //2.声明整型变量,该变量默认值为0

  //3.同一个{}里,声明的变量名是唯一的

  var a int

  fmt.Println("a = ",a)

  //4.可以同时声明多个变量,中间用逗号隔开

  //var b,c int

  }
 

4.变量初始化

 


  var b int =10

 

5.变量赋值

 

  除了在定义变量时,完成初始化以外,可以在变量定义完后,再给变量赋值,也就是先声明后赋值,示例如下:

  var b,c int

  b=10

  c=20

  fmt.Println(b)

  fmt.Println(c)

  注意:上面的输出语句也可以只使用一个Println函数,具体如下:fmt.Println(a,b),中间用逗号进行分割。

  结论:变量可以重复赋值,一旦给一个变量赋了新值,那么变量中的老值就不复存在了。
 

6.自动推导类型

 

  在给变量赋值时,会感觉非常麻烦,有没有更简单的给变量赋值的方式,可以使用自动推导类型,具体示例如下:

  num:=30

  fmt.Println(num)

  所谓自动推导类型,就是不用通过var 声明变量,不用指定类型,直接在变量名后面跟”:”号,同时完成赋值。那么GO会根据所赋的值自动推导出变量的类型。如果给num变量赋值为小数,那么该变量的类型为小数类型(浮点)。

  通过比较,这种方式比前面的赋值方式要简单方便。这种方式,也是开发过程中最常用的方式。
 

7.多重赋值匿名变量

 

  (1)多重赋值

 

  给变量num赋值,采用了自动推导的方式,如果想一次使用自动推导的方式,给多个变量赋值,应该怎样实现呢?具体如下:

  func main(){

  a:=1

  b:=10

  c:=20

  fmt.Println(a,b,c)

  }

  但是这种方式写起来非常的复杂,可以用如下的方式进行简化:

  a,b,c:=1,10,20

  fmt.Println(a,b,c)

  将1的值赋值给a,将10的值赋值给b,将30的值赋值给c。
 

  (2)匿名变量

 

  匿名变量,丢弃数据不进行处理,匿名变量配合函数返回值使用才有价值。
 

8.数据置换

 

  到目前为止,已经了解了什么是变量,变量的定义,以及变量的赋值。那么下面思考一个问题:

  如果有两个变量a和b, a的值为10,b的值为20,交换两个变量的值?

  (有两个杯子,都盛满了水,怎样交换两个杯子中的水)

  (1)使用传统方式实现

  var a int =10

  var b int =20

  var temp int

  temp=a

  a=b

  b=temp

  fmt.Println(a,b)

  (2)使用多重赋值的方式实现

  a,b:=10,20

  a,b=b,a

  fmt.Println(a,b)

  多重赋值的方式交换两个变量的值,比通过第三个变量来进行变量交换更简单,代码也少。
 

9.变量命名规范

 

  (1)变量命名规范要求

 

 名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线。大写字母和小写字母是不同的:heapSort和Heapsort是两个不同的名字。

 除了上面提到的规范要求以外,GO语言自己特有的,具有一定含义的一些字符,也不能作为变量名称。例如,func, fmt,print等等,这些都是GO自带的,具有特殊含义的字符,称为关键字。

     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

 以上关键字都不能作为变量的名称。

 此外,还有大约30多个预定义的名字,比如int和true等

     true     false      iota      nil
     int      int8      int16      int32      int64
     uint      uint8      uint16      uint32      uint64      uintptr
     float32      float64      complex128      complex64
     bool      byte      rune      string      error 
     make      len      cap      new      append      copy      close      delete
     complexrealimag
    
 panic      recover
 

 (2)见名知意

 

 起一个有意义的名字,做到看一眼就知道是什么意思(提高代码可读性) 比如: 名字 就定义为 name , 定义学生用 student
 

 (3)驼峰命名法

 

 小驼峰式命名法(lower camel case): 第一个单词以小写字母开始;第二个单词的首字母大写,例如:myName、aDog

 大驼峰式命名法(upper camel case): 每一个单字的首字母都采用大写字母,例如:FirstName、LastName

 不过在程序员中还有一种命名法比较流行,就是用下划线“_”来连接所有的单词,比如send_buf

  • 微信扫一扫~
  • 支付宝扫一扫~

很赞哦! ()

上一篇:Go语言介绍

下一篇:常量

文章评论

本站推荐