Golang
Golang是由Google在2009年发布的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言,Golang的设计目的是为了提高编程效率,尤其是在处理多核处理器、网络和大型代码库方面的问题。
基本数据类型
Golang的变量定义有显式类型声明和自动推断两种声明方式;其中显式类型声明与C++、Java、C#等传统编程语言不同,显式类型声明为变量类型后置方式。
a := 10 //显示类型声明
var a int = 10 //类型推断
1 布尔类型
Golang提供了布尔类型(bool),值为true/false。这点好评,反面Python的True/False。
2 整数类型
Golang的整数类型主要分为有符号整数和无符号整数两类,与其他编程语言使用long、short不同,golang用int16和int64替代了short和long。
有符号整数:int8、int16、int32和int64。
无符号整数:uint8、uint16、uint32、uint64和uintptr。
其中uintptr为一类特殊的无符号整数,其用于表示指针,占用空间大小取决于运行环境;int和uint较为特殊,其占用字节数量取决于平台,即32位环境下占用32位空间,64位环境下占用64位空间。\
3 浮点类型
Golang提供了单精度浮点类型float32和双精度浮点类型float64两种类型,对应其他语言的float和double类型。
4 复数类型
complex64:使用两个单精度浮点数-float32表示的复数 complex128:使用两个双精度浮点数-float64表示的复数 显示声明,向complex64/complex128传入两个浮点数
var complex_var complex64 = complex(float(1.0), float(1.0))
自动推断,与数学表达式一致,用i表示虚部
complex_var := 1 + 1i
5 字符串类型
Golang中的字符串(string)是不可变的字符序列,一个字符串变量被创建,其内容就固定不能被修改。""包含的内容可以复制给string变量,在golang中使用反引号包含的字符串会使转义符失效即保留原始字符串内容。
5.1 字符串比较
string类型可以用==、!=两个符号比较内容是否相等;同时Golang提供了strings.Compare函数进行高级比较,strings.Compare会比较输入的两个string变量的字典序大小,-1表示第一个string变量字典序小于第二个string类型。
5.2 字符串切片
string可以可以通过[]访问单个字符,也可以通过[start, end]切片得到新的string变量。
str := "Hello,World"
singleChar = str[0]//单个字符索引 'h'
subStr := str[0 : 3]//切片得到新的字符串"Hel"