Go语言入门(二)---内建变量类型

Go语言类型

  • bool,string(布尔,字符串)
  • (u)int,(u)int8,(u)int16,(u)int32,(u)int64,uintptr 加u有符号整数 不加u无符号整数 如果不规定长度 int 还是 int8 还是int32 默认按照操作系统位数 来决定 64位系统就是int64 = 2 64 2^{64} 264 以此类推。 uintptr是指针 长度根据操作系统来定。
  • byte,rune byte字节 8位,rune是4个字节相当于java里的char 但是char是一个字节考虑到国际化原因rune竟可能能放下各种编码 32位 Unicode是2个字节 16位 utf-8是三个字节 24位。
  • float32,float64,complex64,complex128 浮点数32位和64位,复数 complex64 实部和虚部 分别是 32位 (var a complex64=3 +4i) 128位以此类推。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
func euler(){
	c:=3 + 4i
	println(cmplx.Abs(c) )
}

在Go里面 对 复数取模 是多少?
在这里插入图片描述
你猜对了吗 就是5.
下面再来看看欧拉公式 e i π + 1 = 0 e^{iπ} +1=0 eiπ+1=0 来用Go验证下吧

oulaformula := cmplx.Exp( 1i*math.Pi) + 1

在这里插入图片描述
看看在python中怎么计算吧
在这里插入图片描述
python中使用cmath来实现。 但在python 虚部变量不是 i i i 原来是python为了怕搞错 i i i在循环中常用来计数 所以用了 j j j防止弄错。
可以看到 不管是go 和 python在浮点运算时在精度方面是有误差的 其实所有语言 在浮点运算时都是不准的,但误差是很小的。

	fmt.Printf("%.3f",i ) //保留3位 

在这里插入图片描述

强制类型转换

  • 类型转换是强制的
    在这里插入图片描述
    类型转换是强制的 如果是 int = float64 这样的情况 其他语言可能会隐式转换类型 但是go不行 必须是 int = int(float64)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值