02-Go语言语法基础(一)

1. 定义变量

1.2 使用var关键字

  • var a, b, c bool
  • var s1, s2 string = “hello”,“world”
  • 可以直接放在函数内或者直接放在包内
  • 可以使用var()集中定义变量

1.3 让编译器自动决定类型

  • var a, b, i, s1, s2 =true, false, 3, “hello”, “world”

1.4 使用:=定义变量

  • a, b, i, s1, s2 :=true, false, 3, “hello”, “world”
  • 只能在函数内使用

1.5 Demo

var (
	aa = 3
	ss = "kkk"
	bb = true
)

func variableZeroValue() {
	var a int
	var s string
	fmt.Printf("%d %q\n", a, s)
}

func variableInitialValue() {
	var a, b int = 3, 4
	var s string = "abc"
	fmt.Println(a, b, s)
}

func variableTypeDeduction() {
	var a, b, c, s = 3, 4, true, "def"
	fmt.Println(a, b, c, s)
}

func variableShorter() {
	a, b, c, s := 3, 4, true, "def"
	b = 5
	fmt.Println(a, b, c, s)
}

2. 内建变量类型

  • bool, string
  • (u)int, (u)int8, (u)int16, (u)int32, (u)int64, uintptr
  • byte, rune
  • float32, float64, complex64, complex128

Go语言与其它语言重复的内建变量不做赘述。需要注意的是(u)就是unsigned代编有符合或无符号,go语言中让人陌生的主要是

  • uintptr,Go语言的指针类型
  • rune,Go语言没有char类型,其实 rune就是Go语言的char类型,而且是char32位
  • complex 复数类型

复数,最美欧拉公式demo

func euler() {
	c := 3 + 4i
	fmt.Println(cmplx.Abs(c))
	//验证欧拉公式
	fmt.Printf("%.3f\n",
		cmplx.Exp(1i*math.Pi)+1)
}

3. Go语言的类型转换

很多语言都可以隐式的进行类型转换,比如C语言,可以默认的从低精度到高精度转,浮点数除整数后,结果默认为浮点数,但是Go语言没有隐式强制类型转换,必须显示转换。

func triangle() {
	var a, b int = 3, 4
	fmt.Println(calcTriangle(a, b))
}

func calcTriangle(a, b int) int {
	var c int
	c = int(math.Sqrt(float64(a*a + b*b)))
	return c
}

4. 常量与枚举

与其它语言类似,Go语言的常量也是使用const关键字。

func consts() {
	const (
		filename = "abc.txt"
		a, b     = 3, 4
	)
	var c int
	c = int(math.Sqrt(a*a + b*b))
	fmt.Println(filename, c)
}

利用常量类型可以定义枚举类型

func enums() {
	const (
		cpp = iota
		_
		python
		golang
		javascript
	)

	const (
		b = 1 << (10 * iota)
		kb
		mb
		gb
		tb
		pb
	)

	fmt.Println(cpp, javascript, python, golang)
	fmt.Println(b, kb, mb, gb, tb, pb)
}

其中:

  • iota是go语言的常量计数器,只能在常量的表达式中使用。
  • iota在const关键字出现时将被重置为0(const内部的第一行之前),const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。
  • 使用iota能简化定义,在定义枚举时很有用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逍遥俊子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值