GO的基本数据类型、运算符 | 青训营;

127 阅读3分钟

基本数据类型

go语言中的整型分为两类,一类是有符号的整型int,还有一类是无符号的整型uint

在go语言中,我们在使用整型时,需要指定其大小,这也是GO语言中与其他语言不同的地方,java、C、Python等,可以使用整形,无需指定其大小。举例:

     var age int8  //这是go使用整形时的格式
     int age;    //这是java使用整形时的格式
复制代码

如果我们不给其指定大小,那么intuint的大小就会按照操作系统的大小而定。32位的操作系统就会使其成为int32uint32;64位的操作系统就会使其成为int64uint64

类型描述
int根据操作系统大小而定
int8有符号的8位整型
int16有符号的16位整型
int32有符号的32位整型
int64有符号的64位整型
uint根据操作系统大小而定
uint8无符号的8位整型
uint16无符号的16位整型
uint32无符号的32位整型
uint32无符号的64位整型

浮点型

go语言中只有两种浮点型:float32float64float32就相当于Java中的float,而float64就相当于Java中的double,我们在声明浮点型时也需要考虑其可能使用的大小,否则会造成内存浪费。

布尔值

go语言的布尔值跟java的类似;go语言中的布尔值是bool类型,而布尔值数据也只有truefalse两个值。布尔类型的默认值是false。

    var flag bool 
    fmt.Println(flag) //false
复制代码

字符串

go语言中的字符串的内部实现使用UTF-8编码,而字符串的值用""声明。

    s1 := "hello" 
    s2 := "go"
    fmt.Println(s1, s2) //hello go
复制代码

字符串转义符

Go语言的字符串常见转义符包含回车、换行、单双引号、制表符等。下面是一些常见的转义符及其含义

  • \r:回车符(返回行首)
  • \n:换行符(直接跳到下一行的同列位置)
  • \t:制表符
  • ':单引号
  • ":双引号
  • \:反斜杠

例如,我们要打印一个Windows平台下的一个文件路径,可以这样写:

package main

import (
    "fmt"
)

func main() {
    fmt.Println("str := "c:\go\bin\go.exe"")
}
复制代码

此外,Go语言中要定义一个多行字符串时,就必须使用反引号字符。反引号间换行将被作为字符串中的换行,但是所有的转义字符均无效,文本将会原样输出。例如:

    s1 := `第一行
    第二行
    第三行`
    fmt.Println(s1)
复制代码

运算符

Go语言中有多种运算符,包括算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符等。

  • 算术运算符:包括加(+)、减(-)、乘(*)、除(/)、取余(%)以及自增(++)和自减(–)等。
  • 关系运算符:用于比较两个值的大小关系,包括等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)和小于等于(<=)等。
  • 逻辑运算符:用于连接多个条件,包括逻辑与(&&)、逻辑或(||)和逻辑非(!)等。
  • 位运算符:用于对整数在内存中的二进制位进行操作,包括按位与(&)、按位或(|)、按位异或()、按位左移(<<)和按位右移(>>)等。此外,Go语言还提供了“&”运算符,该运算符用于执行按位清空操作。
  • 赋值运算符:用于给变量赋值,包括简单赋值(=)和复合赋值(+=、-=、*=、/=、%=、&=、|=、^=、<<= 和 >>=)等。