七叶笔记 » golang编程 » 「一起学Golang」Go的编程基础《二》

「一起学Golang」Go的编程基础《二》

本节我们继续学习Go语言的基本语法,可参考阅读第一节。

浮点类型

Go语言中的浮点类型主要有:

其中复数类型有两个,complex64和complex128,这是和别的语言比比较特殊的地方。两个类型的村粗空间分别需要8个字节和16个字节。实际上,complex64类型的值会由两个float32类型的值分别表示复数的实数部分和虚数部分。而complex128类型的值会由两个float64类型的值分别表示复数的实数部分和虚数部分。

复数类型的值一般由 浮点数 表示的实数部分、加号“+”、浮点数表示的虚数部分,以及小写字母“i”组成。比如,3.7E+1 + 5.98E-2i。正因为复数类型的值由两个浮点数类型值组成,所以其表示法的规则自然需遵从浮点数类型的值表示法的相关规则。

Math包简介

对于数据的操作,go语言提供了完善的类型,自然也有相应的数学函数API,

math包中的常量类型:

Constants //常量类型,

go语言中预定义的常量类型有

const (

E = 2.71828182845904523536028747135266249775724709369995957496696763 // A001113

Pi = 3.14159265358979323846264338327950288419716939937510582097494459 // A000796

Phi = 1.61803398874989484820458683436563811772030917980576286213544862 // A001622

Sqrt2 = 1.41421356237309504880168872420969807856967187537694807317667974 // A002193

SqrtE = 1.64872127070012814684865078781416357165377610071014801157507931 // A019774

SqrtPi = 1.77245385090551602729816748334114518279754945612238712821380779 // A002161

SqrtPhi = 1.27201964951406896425242246173749149171560804184009624861664038 // A139339

Ln2 = 0.693147180559945309417232121458176568075500134360255254120680009 // A002162

Log2E = 1 / Ln2

Ln10 = 2.30258509299404568401799145468436420760110148862877297603332790 // A002392

Log 10E = 1 / Ln10

)

math包的常用 函数 主要有:

func Abs(x float64) float64 //取x的绝对值

func Max(x, y float64) float64 //返回x和y中最大值

func Min(x, y float64) float64 //返回x和y中最小值

func Dim(x, y float64) float64 //函数返回x-y和0中的最大值

func Mod(x, y float64) float64 //取余运算,可以理解为 x-Trunc(x/y)*y,结果的正负号和x相同

func Sqrt(x float64) float64 //返回x的二次方根

func Cbrt(x float64) float64 //返回x的三次方根

func Hypot(p, q float64) float64 //返回Sqrt(p*p + q*q)

func Sin(x float64) float64 //求正弦

func Cos(x float64) float64 //求余弦

func Tan(x float64) float64 //求 正切

func Log(x float64) float64 //求自然 对数

func Log1p(x float64) float64 //等价于Log(1+x)。但是在x接近0时,本函数更加精确

func Log2(x float64) float64 //求2为底的对数

func Log10(x float64) float64 //求10为底的对数

func Logb(x float64) float64 //返回x的二进制指数值

func Exp(x float64) float64 //返回E**x;x绝对值很大时可能会溢出为0或者+Inf,x绝对值很小时可能会下溢为1。

func Exp2(x float64) float64 //返回2**x

func Pow(x, y float64) float64 //返回x**y

func Pow10(e int) float64 //返回10**e

func Gamma(x float64) float64 //伽玛函数(当x为正整数时,值为(x-1)!)

math包下还有些子包如下:

math/big

math/cmplx

math/rand

其中比较常用的是rand,rand包实现了 伪随机数 生成器。

里面实现了各种数据类型的随机数生成。

string类型

在Go语言中,原生的string类型代表不可改变的字节数组,即文本。使用长度作定界,而不是以结尾0终止的。

可重新赋值,但不能修改其值。这点有点像java里的String类。

正如”3″总是3,”hello”也总是”hello”。

Go语言对字符串操作提供了良好的支持。这部分这边简单提一下,后面我们找个时间专门讨论一下;毕竟对于上层语言,数据类型转换与字符串处理总是永恒不变的话题。

相关文章