第三章 数据类型

go数据类型有基础类型、符合类型、接口类型、引用类型。

基础类型:数字、字符串、布尔型

聚合类型:数组、结构体

应用:map、slience、pointer、func、func

接口类型

1、整数

rune/int32 unicode码点

byte/uint8 原始数据

uinptr 无符号整数

二元运算符

* / + - :整数浮点复数

%:取模

二元比较运算

== != < > ..... ####布尔型

一元加、减

  • + -

o := 0666  #八进制数
fmt.Printf("%d %#[1]x", o) #out put   438 0666
#[1]表示复用前面出现的操作数

2、浮点数

3、复数

complex32 complex64 real()、imag()

4、布尔值

if、for里条件是boolean类型,比较操作符也能得出bool类型,一元操作符!也能得出布尔结果。

&& 优先级高于 ||

//itob 报告i是否为非零值
func itob(i int) bool {return  i != 0}

5、字符串

字符串是不可变的字符序列,len()返回字符串的字节数,而非文字符号。数目小标s[i]取得第i个字符

字符串的第i个字节不一定是第i个字符,非ascii字符的utf8码点需要至少两字节。

字符串内部数据不允许修改。

字符串字面量:

#转义字符
\a bell
\b backspace
\f 换页符
\n 换行
\r enter
\t 制表符
\t 垂直制表
#源码中的字符串十六进制表示: \xhh    h是十六进制数,包含两位, \ooo八进制数三位

原生字符串字面量书写形式 `...`,使用反引号。原生字面量,保存换行,处理时删除回车符,仅保留换行符。

原生的字面量适用与: HTML模板、JSON字面量、命令行提示、及需要多行输出的内容

ascii码使用7位表示128个字符(字母数字标点设备控制符)

unicode32位编码

utf-8:

utf8是unicode变长编码

16位码点值: \uhhhh

32位码点值: \Uhhhhhhhh

码点值小于256的文字付哈可以写成单个十六进制转义形式如\x41

func HasPrifix(s ,prifix string) bool { return len(s)>=len(prifix) && s[:len(prifix)] == prefix } ##判断前缀
{ return len(s)>=len(prifix) && s[len(s)-len(prifix):] == prefix } ##判断后缀
{for i := 0; i<= len(s); i++ {if s[i:] == prifix {return true}}} ##字串

range适用于字符串按照utf8隐式解码,len返回占用空间大小

\uFFD解析到不合理的字符时

字符串和字节slice:

四个包操作字符串: bytes,strings,strconv,unicode

bytes.buffer后添加utf8编码使用writerune方法,追加ascii字符,使用writebyte

常量:

iota常量生成器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值