内容简介:布尔类型的值只能是常量布尔类型和数字 0,1 不能直接转换,必须通过编程实现,golang 提供了多种大小的整数类型,也区分了有符号数和无符号数。
布尔类型 bool
布尔类型的值只能是常量 true
或者 false
。
var b bool = true var c = false
布尔类型和数字 0,1 不能直接转换,必须通过编程实现, if
和 for
语句的条件部分都是布尔类型。
// btoi returns 1 if b is true and 0 if false. func btoi(b bool) int { if b { return 1 } return 0 }
整数类型
golang 提供了多种大小的整数类型,也区分了有符号数和无符号数。
几种确定范围的整数类型:
uint8 8-bit 0 to 255 uint16 16-bit 0 to 65535 uint32 32-bit 0 to 4294967295 uint64 64-bit 0 to 18446744073709551615 int8 8-bit -128 to 127 int16 16-bit -32768 to 32767 int32 32-bit -2147483648 to 2147483647 int64 64-bit -9223372036854775808 to 9223372036854775807 byte uint8 的别名 rune int32 的别名
byte 是 uint8 的等价类型,一般用来表示一个原始的数据而不是一个小的整数
rune 是 int32 的等价类型,通常用于表示一个Unicode码点
还有 3 个依赖于编译器具体实现和平台架构的类型:
uint 32-bit or 64-bit int 32-bit or 64-bit uintptr 没有指定大小,要求足以容纳指针,底层编程时需要
不同类型之间如果进行运算,需要进行显示的强制类型转换,语言本身不会做隐示类型转换。
浮点数
golang 中的浮点数同样也是依据 IEEE-754 标准,提供了两种类型的浮点数。
float32 32-bit +-1e-45 to +- 3.4e38 精确到小数点后 7 位 float64 64-bit +-4.9e-324 to 1.8e308 精确到小数点后 15 位
float64 类型表示的范围更广,精度更高,应该尽可能使用该类型。
math 包中的相关函数都要求 float64 类型
复数
golang 中也提供了复数类型。
complex64 64-bit 实部和虚部都是 float32 complex128 128-bit 实部和虚部都是 float64
复数的通用表示方式: re + imI
。 re
代表实部, im
代表虚部。
内置函数 real()
和 imag()
可以用来获取复数的实部和虚部。
字符串
golang 中提供了字符串类型 string
。字符串有两种字面值表示方式:
var a = "hello, world!\n" // 双引号括起来,转义字符会被解释 var b = `hello, world!\n` // 反引号括起来,所有字符原样输出
golang 中的字符串是不可变字符串,一旦创建不可修改。
var a = "hello, world!" a[1] = 'H' // 错误,cannot assign to a[1]
空字符串是指长度为 0 的字符串,可以使用内置函数 len()
获取字符串中的字节数目。
var a = "hello" // len(a) == 5 var b = "" // len(b) == 0
字符串是采用 UTF-8
编码的,该编码有一个特点就是占用的字节长度是不确定的。
ASCII
码,也就是前 256 个字符占用 1 个字节,其他字符根据情况占用 2 ~ 4
个字节。
字符串支持按下标索引取对应的字节,但是这种情况对纯 ASCII
码字符串才有意义,下标索引要满足 0 <= index < len(s)
。
var s = "hello, world" fmt.Printf("%c", s[0]) // h
支持切片截取操作 s[i:j]
截取从 i
到 j
(不包含j)的字符生成一个新的字符串。
var s = "hello, world" fmt.Println(s[0:5]) // hello
支持字符串连接操作 +
两个字符串相加得到一个新的字符串。
var s = "hello," fmt.Println(s + "world") // hello,world
支持字符串相等比较 ==
按顺序进行字典序比较
参考资源:
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- Python 到底是强类型语言,还是弱类型语言?
- 6. Go 语言数据类型:字典与布尔类型
- 智能合约基础语言(五):Solidity变量类型:引用类型
- GO语言的接口类型
- 7. Go 语言数据类型:指针
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
正则表达式必知必会(修订版)
福达 (Ben Forta) / 杨涛 / 人民邮电出版社 / 2015-1-1 / 29.00元
《正则表达式必知必会》从简单的文本匹配开始,循序渐进地介绍了很多复杂内容,其中包括回溯引用、条件性求值和前后查找,等等。每章都为读者准备了许多简明又实用的示例,有助于全面、系统、快速掌握正则表达式,并运用它们去解决实际问题。正则表达式是一种威力无比强大的武器,几乎在所有的程序设计语言里和计算机平台上都可以用它来完成各种复杂的文本处理工作。而且书中的内容在保持语言和平台中立的同时,还兼顾了各种平台之......一起来看看 《正则表达式必知必会(修订版)》 这本书的介绍吧!