Go语言入门:变量常量与基本数据类型

118 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 8 天,点击查看活动详情


1.变量

变量用于描述计算机中的数据存储空间,其作用为在计算机内存中保存数据。

变量的声明格式: var 变量名称 类型;例如var age int 就声明了一个叫age的变量其类型为int。默认值为0

一次性可以声明多个变量,比如var age,num,sum int

可以讲一个变量的值,赋值给另外一个变量,并且变量中原有的旧值被新值所覆盖

1.1自动推导类型

格式:变量名 := 值

例如num := 10就是自动推导类型,具体num的类型到底是什么,那就要根据等号后面的数值,编译器自行去判断。比如这里赋值为10,那么num就是整型。

也可以进行多个变量一起赋值,比如a,b,c := 1.1,2,3

👇一个小练习:互换两个变量的值。之前我们一般引用第三个变量实现两个变量的值交换,但是go语言可以直接如下这么写

func main() {
   num1 := 10
   num2 := 20
   num1, num2 = num2, num1
   fmt.Println(num1, num2)
}

1.2变量命名规范

  • 只能由数字,字母,_(下划线)组成
  • 不能以数字开头
  • 大写字母和小写字母严格区分
  • 不能是关键字
  • 见名知意
  • 驼峰命名法:小驼峰:第一个单词首字母小写,第二个单词首字母大写;大驼峰:单词首字母全大写
  • 下划线分割法:多个单词组成的名称,全小写字母书写可以用_分隔,比如first_name

部分关键字如下

image.png


2.基础数据类型

位:最小的存储单位,计算机存储的就是二进制0,1,位就是用来存储二进制

字节:基本存储单位,用大写的B来表示,1字节 = 8位

  1. 整型(%d):分为有符号整型int,无符号整型uint

    int包括:正整数,负整数,0;

    uint包括:正整数,0

  2. 浮点类型(%f):用来表示包含小数点的数据,Go语言有float32和float64两种精度,没有double

    • float32精确到小数点后7位,float64精确到小数点后15位。

    • Go语言中涉及到关于数学运算的包中,都要求使用float64这个类型,所以建议多使用float64

    • 如果打算保留两位小数输出一个浮点型数时,可以用%.2f的格式输出,并且会四舍五入

    • 自动推导类型创建的浮点型默认为float64

  3. 布尔类型(%t):用bool关键字定义,真是true,假是false;默认值为false

  4. 字符类型(%c打印字符本身,%d打印ASC‖值):用单引号'' 引起来的单个字符,用byte关键字定义

    • 每个字符会对应一个ASC‖值,比如'a' = 97 ; 'A' = 65 ;'0' = 48
  5. 字符串类型(%s):用关键字string定义,并用双引号引起来

    • 注意:虽然看到的字符串变量只包含一个或一串字符,但隐藏着一个字符串的结束标志**'\0'**,使用%s输出,只打印'\0'前面的内容

    • 测试字符串中的字符个数:用len()函数,比如fmt.Println(len(str)),str是提前定义好的string类型的变量

    • 一个汉字 = 3字符

强制类型转换

比如你支付某件商品,需要付100.5元,商家给你去个零头,付100元就行。那么100.5元是浮点型,100元是整型,这时候就要用强制类型转换。

类型转换:就是将a类型转换成b类型,如下方代码就实现将浮点型转换成整型

func main() {
   num := 3.14
   var i int = int(num)
   fmt.Println(i)
}

也可以直接fmt.Println(int(num)),输出的结果就是int类型的值:3;而且不会四舍五入。

🎈类型转换时建议将低精度类型往高精度类型转,高转低可能会丢失精度或出现数据溢出

比如:int8 -> int16 -> int32 -> int64 ; float32 -> float64


3.常量

程序运行期间不可以改变的量。常量是不可以打印地址的。

3.1常量定义使用

使用const关键字定义;格式为: const 常量名 类型 = 值

建议对常量命名时对其大写。比如const PI float64 = 3.14就定义了一个类型为float64的常量叫PI,值是3.14。

当然我们写常量时可以不写它的类型,此时常量的类型由等号后面的值确定。

3.2常量的命名规范

  • 只能由数字,字母,_(下划线)组成
  • 不能以数字开头
  • 建议全部大写,且严格区分大小写
  • 不能是关键字
  • 见名知意
  • 多个单词组成的名称,使用全大写字母书写,中间用下划线分隔