#### golang内建类型包括:
**bool,string,int,uintptr,byte,rune,float,complex**
golang作为一门通用编程语言,把complex作为内建类型是很少见的,我们这里用golang验证以下欧拉公式:
e^(i*PI)+1=0
复数所使用的包是cmplx,下面请看代码:
```
func euler() {
fmt.Println(cmplx.Pow(math.E, 1i*math.Pi) + 1)
fmt.Println()
fmt.Println(cmplx.Exp(1i*math.Pi) + 1)
}
```
本人的计算机输出的结果是:
```
(0+1.2246467991473515e-16i)
```
为什么不是0?很简单,float无法表示0!如果一定要,使用fmt.printf("%.3f")来进行输出的
###### golang中类型转换是强制的
math.Sqrt(a float)所需要的参数是一个float类型,我们这里求证以下勾股定理
```
func triangle() {
var a, b int = 3, 4
var c int
c = int(math.Sqrt(float64(a*a + b*b)))
fmt.Println(c)
}
```
**其他语言有默认的类型转换,但是golang只有强制类型转换!**
#### 值类型和引用类型
**1.值类型:基本数据类型int、float、bool、string以及数组和struct。**
**2.引用类型:指针、slice、map、chan等都是引用类型。**
有疑问加站长微信联系(非本文作者))