/ 关于Golang面试宝典/

最近几年,Go的热度持续飙升,国内外很多大公司都在大规模的使用Go。Google是Go语言诞生的地方,其他公司如Facebook、腾讯、阿里、字节跳动、百度、京东、小米等都在拥抱和转向Go。Go语言的开源项目也非常多,如kubernetes、docker、etcd。

随着市场对Go语言人才需求的增长,很多开发者都投入了Go语言的怀抱。本系列文章将以第一视角与大家一同开始Golang的面试之路,希望大家能够有所收获,拿下心仪的offer。

/ Go语言基本数据类型/

数值型-整数类型

Golang各整数类型分有符号和无符号,int uint的大小和系统有关

Golang的整形默认声明为int型

Golang程序中整型变量在使用时,遵守保小不保大的原则,即:在保证程序正确运行的前提下,尽量使用占用空间小的数据类型

类型 占用储存空间 范围
int8 1字节 -2^7~2^7-1
int16 2字节 -2^15~2^15-1
int32 4字节 -2^31~2^31-1
int64 8字节 -2^63~2^63-1
uint8 1字节 0~2^8-1
uint16 2字节 0~2^16-1
uint32 4字节 0~2^32-1
uint64 8字节 0~2^64-1
int 32位系统4字节,64位系统8字节 -2^31~2^31-1(32位系统)或-2^63~2^63-1(64位系统)
uint 32位系统4字节,64位系统8字节 0~2^32-1(32位系统)或0~2^64-1(64位系统)

数值型-浮点类型

浮点数在机器中存放形式:浮点数=符号位+指数位+尾数位,尾数部分可能丢失,造成精度损失

Golang浮点类型有固定的范围和字段长度,不受具体OS的影响

Golang的浮点类型默认声明为float64

通常情况下,应使用float64,因为它精度更高

类型 占用储存空间 范围
float32 4字节 -3.403E38~3.403E38
float64 8字节 -1.798E308~1.798E308

字符型

Golang没有专门的字符类型,如果要存储单个字符,一般使用byte或者rune来保存

字符常量是用单引号括起来的单个字符

Golang中允许使用转义字符''来将其后的字符转变为特殊字符型常量

Golang语言的字符使用UTF-8编码

Golang中字符的本质是一个整数,直接输出时,是该字符对应的UTF-8编码的码值

? byte

与uint8等价,范围为0-255,当要储存字符时,选用byte,如:

var a byte = 'a'

? rune

与int32等价,范围为-2^31~2^31-1,表示一个Unicode码,如:

var a rune = '中'

布尔型

? bool

bool类型数据只允许取值true和false,不可以0或者其他值来替代true和false

bool类型占1个字节空间大小

bool类型适用于逻辑运算,一般用于程序流程控制

字符串

? string

字符串是一串固定长度的字符连接起来的字符序列,Golang中的字符串的字节使用UTF-8编码标识Unicode文本,不会出现中文乱码等问题

字符串一旦赋值了,字符串就不能修改了,在Go中字符串是不可变的

字符串的两种表示形式:

  1. 双引号:识别转义字符
  2. 反引号:以字符串的原生形式输出,包括换行和特殊字符

/ 基本数据类型默认值/

数据类型 默认值
整型 0
浮点型 0
字符串 ""
布尔类型 false


本篇文章来源于微信公众号: 草莓橙汁儿



微信扫描下方的二维码阅读本文

此作者没有提供个人介绍
最后更新于 2023-06-27