GO语言基础语法 | 青训营笔记

78 阅读5分钟

1.1 字符类型

1.1.1   基本介绍

Golang 中没有专门的字符类型,如果要存储单个字符(字母),一般使用byte 来保存。 字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。也

就是说对于传统的字符串是由字符组成的,而Go 的字符串不同,它是由字节组成的。

1.1.2   案例演示

    //演示golang中字符类型使用
    func main(){
        var c1 byte = 'a'
        var c2 byte = '0'//字符的0
        
        //当我们直接输出byte值,就是输出了对应的字符码值
        //'a' ==》
        fmt.Printf("c1=%c c2=%\n",c1,c2)
        
        //var c3 byte = '北'//overflow溢出
        var c3 int = '北'//voerflow溢出
        fmt.Printf("c3=%c c3对应码值=%d",c3,c3)
        
    }
    
对上面代码说明  
  1. 如果我们保存的字符在ASCII 表的,比如[0-1, a-z,A-Z..]直接可以保存到byte
  2. 如果我们保存的字符对应码值大于255,这时我们可以考虑使用int 类型保存
  3. 如果我们需要安装字符的方式输出,这时我们需要格式化输出,即 fmt.Printf(“%c”, c1)..

1.1.3   字符类型使用细节

  1. 字符常量是用单引号('')括起来的单个字符。例如:var c1 byte = 'a' var c2 int = '中' var c3 byte ='9'

  2. Go 中允许使用转义字符 '\’来将其后的字符转变为特殊字符型常量。例如:var c3 char= ‘\n’ // '\n'表示换行符

  3. Go  语 言 的 字 符 使 用 UTF-8  编 码  , 如 果 想 查 询 字 符 对 应 的 utf8  码 值 www.mytju.com/classcode/t…

    英文字母-1 个字节  汉字-3 个字节

  4. 在Go 中,字符的本质是一个整数,直接输出时,是该字符对应的UTF-8 编码的码值。

  5. 可以直接给某个变量赋一个数字,然后按格式化输出时%c,会输出该数字对应的unicode 字符

            //可以直接给某个变量赋值一个数字,然后按照格式化输出时%c,会输出数字对应的Unicode字符
            var c4 int =22269//22269 ->'国' 120->'x'
            fmt.Printf("c4=%c\n",c4)
    
  6. 字符类型是可以进行运算的,相当于一个整数,因为它都对应有Unicode 码.

1.1.4   字符类型本质探讨

  1. 字符型 存储到 计算机中,需要将字符对应的码值(整数)找出来

存储:字符--->对应码值---->二进制-->存储
读取:二进制----> 码值 ---->  字符 -->  读取

  1. 字符和码值的对应关系是通过字符编码表决定的(是规定好)
  2. Go 语言的编码都统一成了utf-8。非常的方便,很统一,再也没有编码乱码的困扰了

2.1  布尔类型
2.1.1   基本介绍

  1. 布尔类型也叫bool 类型,bool 类型数据只允许取值true 和false
  2. bool 类型占1 个字节。
  3. bool 类型适于逻辑运算,一般用于程序流程控制[注:这个后面会详细介绍]:

Ø if 条件控制语句;
Ø for 循环控制语句

2.1.2   案例演示

        func main(){
            var b =false
            fmt.Printf("b=",b)
        //注意事项
        //1.bool类型占用存储空间时一个字节
                fmt.Printf("b的占用空间="unsafe.Sizeof(b))  
        }

3.1 string 类型
3.1.1   基本介绍

字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。Go 语言的字符串的字节使用UTF-8 编码标识Unicode 文本

3.1.2   案例演示

      func main(){
          //String的的基本使用
              var address string ="北京长城 110 hello world!!!"
              fmt.Printf(address)
      }
     

3.1.3   string 使用注意事项和细节

  1. Go 语言的字符串的字节使用UTF-8 编码标识Unicode 文本,这样Golang 统一使用UTF-8 编码,中文 乱码问题不会再困扰程序员。
  2. 字符串一旦赋值了,字符串就不能修改了:在Go 中字符串是不可变的。

image.png

  1. 字符串的两种表示形式

(1) 双引号,  会识别转义字符
(2) 反引号,以字符串的原生形式输出,包括换行和特殊字符,可以实现防止攻击、输出源代码等效果

image.png

  1. 字符串拼接方式

image.png

  1. 当一行字符串太长时,需要使用到多行字符串,可以如下处理

image.png

4.1 基本数据类型的默认值

4.1.1   基本介绍

在go 中,数据类型都有一个默认值,当程序员没有赋值时,就会保留默认值,在go 中,默认值

又叫零值。
4.1.2   基本数据类型的默认值如下

image.png

案例:

image.png

5.1 基本数据类型的相互转换

5.1.1   基本介绍

Golang  和java / c  不同,Go  在不同类型的变量之间赋值时需要显式转换。也就是说Golang 中数

据类型不能自动转换。
5.1.2   基本语法

表达式 T(v)  将值 v  转换为类型 T
T:  就是数据类型,比如 int32,int64,float32  等等
v: 就是需要转换的变量

5.1.3   案例演示

image.png

5.1.4   基本数据类型相互转换的注意事项

  1. Go 中,数据类型的转换可以是从 表示范围小-->表示范围大,也可以 范围大--->范围小
  2. 被转换的是变量存储的数据(即值),变量本身的数据类型并没有变化!

image.png

  1. 在转换中,比如将 int64   转成 int8  【-128---127】 ,编译时不会报错,只是转换的结果是按 溢出处理,和我们希望的结果不一样。 因此在转换时,需要考虑范围.

image.png