Go语言学习笔记-变量,常量以及数据类型

1. Golang变量,常量

1)变量(常量)的声明

Go语言的变量和常量分别通过关键字 varconst 来定义,变量声明的一般形式为 var 变量名 数据类型
如果是多个相同数据类型的变量,则可以这么写:

var a1, a2, a3 *int

Go语言把数据类型写在最后的一个好处是确保所有前面声明的变量都是该类型(对比:C/C++的声明

int* a1, a2, a3

在这里,只有a1是指针类型,a2, a3均为整形)

Go语言还有多行形式的声明:

var (
	a int
	b float64
	c uint
)
2)初始化

Go语言初始化的一般格式为 var/const 变量(常量)名 数据类型 = 表达式 。初始化时,也可以将数据类型省略,让编译器自动判断,即 var/const 变量(常量)名 = 表达式 。还有一种更为简短的初始化方式: 变量名 := 表达式(这种初始化只能用于变量而非常量)。具体例子如下

var a int = 10
const b = .3
var c = 1. //浮点型可以只写出小数点左边(或右边)的数
var (
	d = '?'
	e = true
)
f := 4 //需要注意的是,:=左端必须是未声明过的变量

一般来说,常量必须在声明的时候将其初始化,而变量如果声明的时候未初始化,则Go编译器自动将其初始化。(每个数值变量默认值为0,而字符串默认为空字符串)

2. Golang的数据类型

1)布尔型

布尔型的值只能是true或者false

var a bool = true
2)整型
类型说明
int88位整型(-128 - 127)
int1616位整型(-32768 到 32767)
int3232位(-2147483648 到 2147483647)
int6464位(-9223372036854775808 到 9223372036854775807)
int32位或64位(与电脑机器字长有关)
uint88位无符号整型(0 到 255)
uint1616位无符号整型(0 到 65535)
uint3232位无符号整型(0 到 4294967295)
uint6464位无符号整型(0 到 18446744073709551615)
uint32位或64位(与电脑机器字长有关)
uintptr无符号整型,用于存放一个指针
3)浮点型

浮点型分为32位(float32)和64位(float64),默认为float64

var a float64 = 32.64
var b = 6.02e23
4) 复数

Go语言中复数是由两个浮点数构成(实部(real)和虚部(imag)),分为64位(complex64, 实部和虚部分别是32位浮点数)和128(complex128, 实部和虚部分别是64位浮点数)

package main
import "fmt"
func main() {
	var a complex128 = complex(2,3) //complex(x,y)中x为实部,y为虚部
	var b = complex(1.3, 4.5)
	c := 2 - 3i // 等价于 c := complex(2, -3)
	fmt.Println(a)
	fmt.Printf("%f - %.2f", b, c)
}

运行结果为
(2+3i)
(1.300000+4.500000i) - (2.00-3.00i)

5)字符型

Go语言中有两种字符类型

  • byte型(等价于uint8)可以用来表示ASCII码中的字符
  • rune型(等价于uint32)可以用来表示Unicode(UTF-8)字符
package main
import "fmt"
func main() {
	var (
		ch byte = 'A'
		ch1 byte = 65
		ch2 byte = '\x41'
		ch3 byte = '\377'
	)// 以上四种写法等价
	var (
		u rune = '\u03B1'//书写4个字节的时候用\u + 16进制数,8个字节则需用\U 前缀
		u1 rune = 945
	)
	fmt.Println(ch)
	fmt.Printf("%d - %c\n", ch, ch)
	fmt.Printf("%d - %v - %c - %X - %U", u, u, u, u, u)
}

运行结果为
65
65 - A
945 - 945 - α \alpha α - 3B1 - U+03B1

6) 字符串
var a string = "HelloWorld"

在Go语言中,如果要输入多行的字符串,则需要用反引号 ` ,具体实现如下:

package main
import "fmt"
func main() {
	str := `hello
	world
!!!`
	fmt.Println(str)
}

运行结果为

hello
	world
!!!

多行字符串一般用于内嵌源码和内嵌数据等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值