Go语言快速入门5|青训营

85 阅读2分钟

一、big包

1、big.Int(一旦使用了big.Int,那么等式里其它的部分也必须使用big.Int); NewInt()函数可以把int64转化为big.Int类型

缺点:用起来繁琐,且速度慢

二、较大数值的常量

在Go里面,可以为常量指明类型

const distance uint64 = 24000000000000000000  //超过uint的最大值,会报错

也可以不指名常量类型

对于变量,Go会使用类型推断;而在Go里,常量可以是无类型的(untyped),

const distance = 24000000000000000000  //不会报错

常量使用const关键字来声明,程序里的每个字面值都是常量。这意味着比较大的数值可以直接使用(作为字面值)

针对字面值和常量的计算是在编译阶段完成的。

Go的编译器是用Go编写的,这种无类型的数值字面值就是有big包所支持的。这是你可以操作很大的数(超过18的10^18),只要能够容纳的下,那么常量就可以赋值给变量。

三、多语言文本

1、声明字符串

peace := "peace"
var peace = "peace"
var peace string = "peace"

2、字符串的零值

 var blank string

3、字符串的字面值/原始字符串字面值

字符串字面值可以包含转义字符,例如\n

但是如果想得到的是\n而不是换行的话,可以使用 ` (Esc下面一个键)来代替 “ ,这叫做原始字符串字面值

fmt.Println("peace be upon you\nupon you be peace")  
//peace be upon you
  upon you be peace
  
fmt.Println(`string can span multiple lines with the \n escape sequence `//string can span mnultiple lines with the \n escape sequence

fmt.Println(` 
peace be upon you
upon you be peace `)
//   peace be upon you
     upon you be peace(符号 ` 也允许输入多行文本)

4、类型别名(类型别名就是同一个类型的另外一个名字,所以rune和int32可以互换使用)

也可以自定义类型别名,语法如下:

type byte = uint8
type byte = int32

5、打印

(1)如果想打印字符串而不是数值,使用%C格式化动词

(2)任何整数类型都可以使用%c打印,但是rune意味着该数值表示了一个字符

6、字符

字符字面值使用‘’括起来。例如:‘A’

如果没指定字符类型的话,那么Go会推断它的类型为rune

var grade rune
grade := ‘A’
var grade1 = ‘A’
var grade2 rune = ‘A’

这里的grade仍然包含了一个数值,本例中就是65,它是A的code point

字符字面值也可以用byte类型

var star byte = '*'