一、go语言-变量和常量
go语言用于声明变量的关键字var,以及用于声明常量的关键字const。要知道,绝大多数的数据类型的值都可以被赋给一个变量,包括函数。而常量则不同,它只能被赋予基本数据类型的值本身。
变量和常量在声明方式方面也有所不同。我们可以在声明一个变量的时候直接为它赋值,也可以只声明不赋值。变量的声明并赋值方式如下:
// 注释:普通赋值,由关键字var、变量名称、变量类型、特殊标记=,以及相应的值组成。
// 若只声明不赋值,则去除最后两个组成部分即可。
var num1 int = 1
或:
var num2, num3 int = 2, 3 // 注释:平行赋值
或:
var ( // 注释:多行赋值
num4 int = 4
num5 int = 5
)
实例代码(1):
package main
import (
"fmt"
)
func main() {
var (
num1 int
num2 int
num3 int
num4 int = 4
num5 string = "abc"
num6 int = 3
)
num1, num2, num3 = 1, 2, 3
// 打印函数调用语句。用于打印上述三个变量的值。
fmt.Println(num1, num2, num3, num4, num5, num6)
}
go语言使用var关键字定义变量,使用const关键字定义常量。赋值
1、var num1 int = 1
2、var num1,num2 int = 1,2
3、var { num2 int = 4
num1 int =6
num3 int =7
}
4、var {
num1 int
num2 int
num3 int }
num1,num2,num3 = 1,2,3
实例代码(2):
package main
//声明变量,系统自行判断变量类型
var a = "go语言学习"
//指定变量类型,并赋值。如果不赋值,将会使用默认值
var b string = "我爱你啊"
//指定变量类型,不赋值
var c bool
//同时声明多个类型相同的变量,但不赋值
var x, y, z int
//同时声明多个类型相关的变量,并赋值
var e, f = 123, "go"
//这种因式分解关键字的写法一般用于声明全局变量
var (
age int = 20
flag bool
)
func main() {
/*(这种不带声明格式的只能在函数体中出现)
省略var,注意 :=左侧的变量不应该是已经声明过的,否则会导致编译错误
*/
name := "go语言"
println(a, b, c, name, x, y, z, e, f, age, flag)
}
实例代码(3):
//go语言常量语法
package main
import "fmt"
import "unsafe"
//常量用做枚举
const (
name = "霜花似雪"
age = 20
size = len(name)
num = unsafe.Sizeof(name)
)
func main() {
//定义常量
const HEIGHT int = 10
const WIDTH int = 5
//定义局部变量,并指定类型,但是没有赋值
var area int
//同时定义多个常量,并赋值
const a, b, c = 1, false, "str"
area = HEIGHT * WIDTH
fmt.Print("面积为 :", area)
println() //换行
println(a, b, c)
println()
println(name, age, size, num)
}
二、go语言-整数类型
Go语言的整数类型一共有10个。
其中计算架构相关的整数类型有两个,即:有符号的整数类型int和无符号的整数类型uint。
有符号的整数类型会使用最高位的比特(bit)表示整数的正负,它能表示的整数的范围有一定的损耗(使其缩小)。而无符号的整数类型会使用所有的比特位来表示数值,它的值均为正数。
在不同的计算架构的计算机之上,它们体现的宽度是不同的。宽度即指存储一个某类型的值所需要的空间。空间的单位可以是比特,也可以是字节(byte)。如图:
实例代码:
package main // 代码包声明语句
// 代码包导入语句
import (
"fmt" // 导入代码包fmt。
)
// main函数
func main() { // 代码块由“{”和“}”包裹。
// 变量声明和赋值语句,由关键字var、变量名num、变量类型uint64、特殊标记=,以及值10组成。
var num uint64 = 65535
// 短变量声明语句,由变量名size、特殊标记:=,以及值组成。
size := (8)
// 打印函数调用语句。在这里用于描述一个uint64类型的变量所需占用的比特数。
// 这里用到了字符串的格式化函数。
fmt.Printf("类型为 uint64 的整数 %d 需占用的存储空间为 %d 个字节。\n", num, size)
}
三、go语言-整数类型值的表示法
go语言整数的类型的宽度,决定了它的数值范围大小,如图:
在go语言中采用10进制法表示整数。
var num1 int = 12 //10进制表示法
我们也可以使用8进制和16进制来表示整数。
num1 = 014 // 用“0”作为前缀以表明这是8进制表示法。
或:
num1 = 0xC // 用“0x”作为前缀以表明这是16进制表示法。
实例代码:
package main
import (
"fmt"
)
func main() {
// 声明一个整数类型变量并赋值
var num1 int = -0x1000 //十六进制表示
var num2 int = -4096 //十进制表示
var num3 int = 014 //八进制表示
// 这里用到了字符串格式化函数。其中,%X用于以16进制显示整数类型值,%d用于以10进制显示整数类型值。
fmt.Printf("16进制数 %X 表示的是 %d。\n", num1, num1)
fmt.Printf("num2是十进制表示法 %d\n", num2)
fmt.Printf("num3是八进制表示法 %d\n", num3)
}
go语言输出格式说明:
输出时%X表示16进制,%d表示10进制
%E用于以带指数部分的表示法显示浮点数类型值,
%f用于以通常的方法显示浮点数类型值
%c用于显示rune类型值代表的字符
%q用于显示字符串值的表象值并用双引号包裹
%v 是输出bool类型的转义符
16进制:
它由0-9,A-F组成,字母不区分大小写
与10进制的对应关系是:0-9对应0-9;A-F对应10-15
N进制的数可以用0~(N-1)的数表示,超过9的用字母A-F
go语言数值变量赋值,int类型默认是10进制表示,
var num1 int = 10 (默认10进制)
var num1 int = 010 (使用8进制表示,前缀是 0表示)
var num1 int = 0xC (使用16进制表示,前缀是0x)
好了,今晚就分享到这里,后续还会有更多学习笔记!希望与诸君共同学习,共同进步!