0
点赞
收藏
分享

微信扫一扫

Go语言基础 变量与数据类型

HelloWorld

package main
import "fmt"

func main() {
	fmt.Print("Hello World")
}

注释:

// 这是单行注释,可以给一行代码加注释

/*
	这是多行注释,若果代码量比多,每行加注释,比较麻烦,可以使用多行注释
*/

/**
	这是文档注释,和多行一样的效果
*/

变量:

变量命名规范要求:

  1. 小驼峰式命名:变量名、方法名
  2. 首字母小写,从第二个单词开始每个单词的首字母大写。
  3. 大驼峰式命名:类名,每个单词的首字母都大写。
  4. 命名最好可以做到见名知意 ​ 例如:username、studentNumber等。

变量定义格式:

var 变量名称 类型

var age int

变量赋值:

	var age int = 23
	fmt.Println(age)

	// 变量之间赋值
	var a  int = 1
	var b  int = a

	// 通过第三个变量交换两个变量的值
	var num1 = 1
	var num2 = 2
	var temp = num1
	num1 = num2
	num2 = temp
	fmt.Println("num1 = ", num1) // go的拼接是用的逗号,不可以使用加号
	fmt.Println("num2 = ", num2)

自动推导类型:

在给变量赋值时,可以简化书写,不用通过var 声明变量,使用:代替即可,会自动检测是什么类型
格式:

变量名 := 变量值   // 冒号和等号之间没有空格

演示:

	num := 10
	fmt.Println(num)

	// 交换变量值
	a := 1
	b := 2
	a, b = b, a
	fmt.Println(a, b)

多重赋值:

一次性定义多个变量并赋值
格式:

变量1,变量2,变量3, :=1,2,3

演示:

	// 按照顺序给多个变量赋值
	a, b, c := 1, 2, 3
	fmt.Println(a, b, c)

输出格式:

Print():输出但不换行
Println():输出并换行
Printf():输出不换行,可以指定输出的变量类型

	a, b, c := 1, 2, 3
	fmt.Print(a, b, c, "\n")
	fmt.Println(a, b, c)
	fmt.Printf("a = %d , b = %d , c = %d ", a, b, c)

键盘录入:

go的键盘录入和Java里的Scanner一样

Scanf():需要指定接收的类型
Scan():不需要指定接收的类型

func test01() {
	var age int
	fmt.Println("请输入您的年龄")
	fmt.Scanf("%d", &age)
	fmt.Println("age = ", age)
}

func test02() {
	var age int
	fmt.Println("请输入您的年龄")
	fmt.Scan(&age)
	fmt.Println("age = ", age)
	fmt.Println(&age) //0x14000120008:内存地址
}

关键字:

关键字的特点:

数据类型:

类型名称长度零值说明
bool布尔类型1FALSE其值不为真即为假,不可以用数字代表true或false
byte字节型10uint8别名
rune字符类型40专用于存储unicode编码,等价于uint32
int, uint整型4或80有符号32位或无符号64位
int8整型10-128 ~ 127
uint8整型100 ~ 255
int16整型20-32768 ~ 32767
uint16整型200 ~ 65535
int32整型40-2147483648 到 2147483647
uint32整型400 到 4294967295(42亿)
int64整型800 到 18446744073709551615(1844京)
uint64整型80-9223372036854775808到 9223372036854775807
float32浮点型40.0小数位精确到7位
float64浮点型80.0小数位精确到15位
complex64复数类型8
complex128复数类型1664 位实数和虚数
uintptr整型4或8⾜以存储指针的uint32或uint64整数
string字符串“”utf-8字符串

整型:

  • 有符号(int):正整数、负整数、0
  • 无符号(uint):正整数、0
func test() {
	var age uint = -10
	println(age) // 报错,不支持负数
}

浮点类型:

演示:

func test02() {
	var sum float64 = 123.456789
	sum2 := 123.456789  	  // 如果使用的是自动推导类型,默认就是float64类型的
	fmt.Printf("%f\n", sum)   //123.456789
	fmt.Printf("%.2f\n", sum) // 使用".数字"可以保留小数位数并四舍五入  123.46
	fmt.Printf("%T", sum2)    // float64   %T可以打印出变量的类型
}

布尔类型:

布尔类型的变量取值要么是true,要么是false,使用bool关键字进行定义,默认值为true

	var b bool = true
	fmt.Println(b)

字符类型:

用单引号引起来的字符,单引号里只能有一个字符,数据类型为byte
点击查看ASCLL码表

	//b := 'b'
	var b byte = 'a'
	fmt.Println(b) // 打印结果不是b,是98,
	fmt.Printf("%c", b) // 打印结果是a,要打印自定义的字符要使用Printf

字符串类型:

用双引号引起来的,字符串中有一个隐藏的结束标志\0

	//name := "itzhuzhu"
	var name string = "itzhuzhu"
	fmt.Printf("%T\n", name) // 打印字符串的数据类型
	fmt.Println(name)        // 打印字符串的数据值
	fmt.Println(len(name))   // 打印字符串的长度,如果是中文的话,一个中文是3个字节
举报

相关推荐

0 条评论