内容简介:布尔类型的值只能是常量布尔类型和数字 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 语言数据类型:指针
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
零基础学Java Web开发
刘聪 编 / 机械工业出版社 / 2008-1 / 59.00元
《零基础学Java Web开发:JSP+Servlet+Sfruts+Spring+Hibernte》全面讲解Java Web应用开发的编程技术,并详细介绍Java Web开发中各种常用的技术,可作为Java Web开发技术的学习指南。 《零基础学Java Web开发:JSP+Servlet+Sfruts+Spring+Hibernte》共17章,分为3篇,其中第1~12章是基础篇,讲解了......一起来看看 《零基础学Java Web开发》 这本书的介绍吧!