我是靠谱客的博主 冷酷奇异果,最近开发中收集的这篇文章主要介绍GO语言学习入门笔记系列详解(二):Go的变量和常量定义GO语言学习入门笔记系列详解(二):Go的变量和常量定义,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

GO语言学习入门笔记系列详解(二):Go的变量和常量定义

变量定义

  • var关键字:说明是一个变量
  • 变量名在前,变量类型在后

函数内定义变量

func variableZeroValue() {
	//变量名在前,变量类型在后
	var a int
	var s string
	//go语言的变量一定会有一个初始值
	//int类型初值是0
	//string类型的初值是"",使用%q可以将空字符串打出来
	fmt.Printf("%d %qn", a, s)
}
  • go语言函数内的变量一旦定义,就必须使用
func variableValueInit() {
	//自定义赋初值
	var a, b int = 3, 4
	var s string = "abc"
	//go语言的变量一旦定义就必须使用
	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"
	//之后重新复制不可以
	a = 5
	fmt.Println(a, b, c, s)
}

函数外定义变量

  • 可以省略类型,但是不能用:=来赋初值
//叫做包内变量
var aa = 3
var ss = "hello you"
var bb = true
  • 简单写法
//变量定义
var (
	aa = 3
	ss = "hello you"
	bb = true
)

内建变量类型

变量的类型

  1. bool和string

  2. 整型int,前面加u表示无符号,后面的数字表示规定的长度

    uintptr表示指针,这个指针的长度跟随系统

(u)int,(u)int8,(u)int16,(u)int32,(u)int64,uintptr
  1. byte和rune(长度是32位,相当于char类型)
  2. float32,float64,complex64,complex128(complex表示复数)

复数回顾

image-20220507230834019

e i φ = cos ⁡ φ + i sin ⁡ φ ∣ e i φ ∣ = cos ⁡ 2 φ + sin ⁡ 2 φ = 1 e 0 = 1 , e i π 2 = i e i π = − 1 , e i i 2 π = − i , e i 2 π = 1 begin{aligned} &e^{i varphi}=cos varphi+i sin varphi \ &left|e^{i varphi}right|=sqrt{cos ^{2} varphi+sin ^{2} varphi}=1 \ &e^{0}=1, e^{i frac{pi}{2}}=i \ &e^{i pi}=-1, e^{i frac{i}{2} pi}=-i, e^{i 2 pi}=1 end{aligned} eiφ=cosφ+isinφeiφ=cos2φ+sin2φ =1e0=1,ei2π=ieiπ=1,ei2iπ=i,ei2π=1

Go语言如何表示复数

func euler() {
  //不能写成4*i,会认为i是一个没有定义的变量
	c := 3 + 4i
	fmt.Println(cmplx.Abs(c))
}

强制类型转换

  • 类型转换是强制的

  • 举例子:验证勾股定理

    var a,b int = 3,4

    var c int = math.Sqrt(a*a + b*b)

func triangle()  {
	var a , b int = 3,4
	var c int
	c = int(math.Sqrt(float64(a*a + b*b)))
	fmt.Println(c)
}

常量与枚举

常量定义

常量相当于一个文本替换的动作。

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

常量的定义也可以使用括号

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

枚举定义

  • 没有自增
func enums() {
	const (
		cpp    = 0
		java   = 1
		python = 2
		golang = 3
	)
  fmt.Println(cpp, java, python, golang)
}
  • 带有自增
	const (
		cpp = iota
		java
		python
		golang
	)
  • iota可以作为自增量
//iota可以作为自增值
	const (
		b = 1 << (10 * iota)
		kb
		mb
		gb
		db
	)

最后

以上就是冷酷奇异果为你收集整理的GO语言学习入门笔记系列详解(二):Go的变量和常量定义GO语言学习入门笔记系列详解(二):Go的变量和常量定义的全部内容,希望文章能够帮你解决GO语言学习入门笔记系列详解(二):Go的变量和常量定义GO语言学习入门笔记系列详解(二):Go的变量和常量定义所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(93)

评论列表共有 0 条评论

立即
投稿
返回
顶部