Go语言之旅(语言基本语法--变量)

Go语言基本语法


一、变量的定义

特别注意go语言的变量如果定义了,就必须要被引用,不然会报错!

1.不赋值变量的定义

go的变量定义还是和Java有点区别的,Java的变量定义格式为变量类型+变量名

int a;
String str;

而go的变量定义格式为:var+变量名+变量类型

func variableZeroVlue(){
	var a int
	var str string//这里需要注意Java的String是首字母大写的
	fmt.Println(a,s)
	fmt.Printf("%d %q\n",a,s)
}

2.赋值变量的定义

//赋单个变量的值
var a int = 1
var s string = "abc"
//同时赋多个变量的值
var a,b,c int = 1,2,3
//go也是可以默认识别变量类型的,就不用再单独声明变量的类型了
var d,e,f = 4,true,"asd"
func variableShortVlue(){
	//这里还有一种更加便捷的定义方式
	//:=的方式来代替 var
	var a,b,c = 1,true,"aaa"
	d,e,f := 1,true,"aaa"
	fmt.Println(a,b,c,d,e,f)
}

注意“:=”这种定义方式只能在func方法里面定义,不能在方法外面,不然会报错!

var a = 1
var b = 2
var c =3
//如果我们有大量的var变量定义的话,可以采用var()方法来定义
var(
	a = 1
	b = 2
	c = 3
)

注意方法里面的变量只能作用在方法内,方法外的变量它的作用域实在这个包内生效

二、内建变量类型

1.bool , string
2.(u)int , (u)int8 , (u)int32 , (u)int64 , uintptr
加u是无符号整数,不加u是有符号整数
8表示长度,如果长度不写的话,它的默认长度跟随系统,系统是32位他就是 32位,系统是64位的他就是64位
uintptr相当于C的指针
3.byte(8位) , rune(相当于char,长度32位)
4.float32 , float64 , complex64 , complex128(数学中的复数:实部+虚部)
复数回顾
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

//用go进行对欧拉公式的验证
func euler(){
	c := 3 + 4i
	//cmplx是复数的函数包
	fmt.Println(cmplx.Abs(c))
	fmt.Println(cmplx.Pow(math.E,1i * math.Pi)+1)
	//由于E这个数学底数比较特殊,建议使用下面这种写法
	fmt.Println(cmplx.Exp(1i * math.Pi)+1)
	fmt.Printf("%.3f\n",cmplx.Exp(1i * math.Pi)+1)
}
//运行结果
5
(0+1.2246467991473515e-16i)
(0+1.2246467991473515e-16i)
(0.000+0.000i)

三、强制类型转换

注意go语言只有强制类型转换,没有隐式转换

func triangle(){
	var a,b int = 3,4
	var c int
	c = math.Sqrt(a * a + b * b)//这里报错,因为sqrt方法参数是float64
	c = math.Sqrt(float64(a * a + b * b))//这里还是报错,因为sqrt方法的返回值也是float64,
	                                     // 而我们定义的c是int型的
    c =int(math.Sqrt(float64(a * a + b * b)))
	fmt.Println(c)
}

这里有个小的瑕疵,因为float是浮点型,当数比较大的时候强制转换的时候可能会出现问题?

总结

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

@赵亮

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

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

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

打赏作者

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

抵扣说明:

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

余额充值