2.go快速入门笔记-基本数据结构

2020-01-19  本文已影响0人  一个菜鸟JAVA

Go中数据类型分为四种:基础类型、聚合类型、引用类型、接口类型

1.整数

2.浮点数

Go有两种浮点数float32float64.绝大多数情况下优先选用float64.

3.复数

Go有两种大小的复数complex64complex128,两者分别由float32float64构成.

4.布尔值

bool型的值只有两种可能:truefalse

5.字符串

字符串是不可变的字节序列,它可以包含任意数据,包括0值字节.需要注意一下几点:

5.1字符串字面量

字符串可以直接写成字符串字面量,形式就是使用双引号的总结序列.
有部分字符无法输入的可以通过转义序列写入,形式就是以\开始.常用的有一下几种:

输入内容 含义
\b 退格符
\f 换页符
\n 换行符
\r 回车符
\t 指标符
\' 单引号
\" 双引号
\\ 反斜杆

原生的字符串字面量的书写形式以``反引号,而不是使用单引号或者双引号.在原生的字符串字面量中,转义序列将失效.

5.2 字符串和字节slice

Go中对字符串操作提供了四个重要的包:bytes,strings,strconv和unicode

strings包主要提供搜索,替换,比较,修整,切分与连接字符串等函数
bytes包提供的函数与strings类似,用户操作字节slicep(bytep[]类型)
strconv包主要提供类型转换和为字符串去除添加引号等函数
unicode包主要提供判别文字符号特征等函数.

5.3 字符串和数字相互转换

strconv包可以相互转换数字和字符.

x,err := strconv.Atoi("123") //将字符串123转化成整数123
y,err := strconv.ParseInt("123",10,64) //转换成十进制整数,最长为64位

6.常量

常量是一种表达式,在编译阶段就能计算出表达式的值,不需要等到运行时才知道它的值.所以常量本质上都属于基本类型:布尔,字符串或数字.

//声明一个float64类型的常量
const pi float64 = 3.1415926
//声明一个name常量,类型可以自己推导出来
const name = "tom"
//多个常量,还可以这样简写方便
const (
    author         = "莫言"
    country string = "中国"
    //内置函数len()计算常量的长度也是常量
    l = len(country)
)

许多常量的就在编译时就能完成,某些错误通常要运行时才能检测到,但是操作数是常量,编译时就会报错.例如整数除以0,字符串下标越界,以及任何产生无限大值的浮点数运算.
对于常量操作数,所有数学运算,逻辑运算和比较运算的结果依然是常量.

6.1常量生成器iota

iota从0开始取值,逐项+1.例如下面代码:

type Weekday int
const(
    Sundy Weekday = iota
    Monday
    Tuesday
    Wednesday
    Thursday
    Friday
    Saturday
)

上面的代码中,Sunday的值为,Monday的值为1,以此类推.

6.2无类型常量

虽然常量可以有任意一个确定的基础类型,例如int或float64,但是许多常量并没有一个明确的基础类型.编译器为这些没有明确的基础类型的数字常量提供比基础类型更高精度的算术运算.例如下面的例子:

package main

import "fmt"
//无类型常量
const pi = 3.1415926

func mian(){
    var f1 float32 = 1.2
    var f2 float64 = 1.3
    // pi可以与f1(float32)相加
    fmt.Println(f1 + pi)
    // pi可以与f2(float64)相加
    fmt.Println(f2 + pi)
    // f1 + f2 相加编译不通过
}
上一篇 下一篇

猜你喜欢

热点阅读