Go(Golang)_02_数据类型

@

数据类型

Go中数据类型分为:基础类型聚合类型引用类型接口类型

1)基础类型分为:数、布尔、字符串

2)聚合类型:数组、结构体

3)引用类型:slice、map、函数、通道

4)接口类型:对其他类型行为的概括和抽象


:记录具体数值数据

1)Go中的数分为:整数浮点数复数

//对应的常用关键词为:int、float32、complex128



程序中数类型需注意事项:

1)浮点数转换位整数时,会舍弃其小数部分;

2)复数常量可和其他常量进行算术运算;


如:定义3中类型的数,并输出
1)编写程序;
在这里插入图片描述
2)运行结果;
在这里插入图片描述


布尔

布尔(bool):Go中仅存在两种状态的对象(true或false)

1)可通过一元操作符(!)取反对象的状态;

2)布尔值无法隐式转换为数值;


如:通过true和false影响函数的运行

1)编写程序;
在这里插入图片描述
2)运行结果;
在这里插入图片描述


字符串

字符串(string):数字、字母和特殊符号组成的一串字符(字符的有序集合)

1)支持运算符操作,但可能触发内存分配/拷贝;

2)可通过下标访问(从0开始,且空格也占位);

3)不可变的字节序列(无法直接修改);



string使用8比特字节的集合存储字符串

1)存储的内容是字符的UTF-8编码(常和[]byte类型互相转换);

2)字符串长度:Unicode编码所占的字节数(英文1,中文3);

3)字符串可为空,但不可为nil;

//string和[]byte的类型转换会触发次内存拷贝(建议使用[]byte)



通过下标访问格式:变量名[索引值1:索引值2]

1)若省略索引值1,则默认从0到索引值2(不包括);

2)若省略索引值2,则默认从索引值1到最后(包括);

3)若同时省略索引值1和索引值2,则默认包含字符串的所有字符;

//若省略“:”直接指定索引值,则默认显示该字符对应的ASCII码值



转义字符:使字符串中显示不能直接显示的字符

1)转义符通过“\”和一个可以显示的字符定义;

2)常用的转义字符如下:

转义字符 含义
\a 响铃(BEL)
\b 退格(BS)
\f 换页(FF)
\n 换行(LF)
\r 回车(CR)
\t 水平制表(HT)
\v 垂直制表(VT)
\\ 代表反斜杠(\)字符

引号需知:

1)使用反引号括住的内容,其输出形式和输入形式完全相同(无需转义);

2)当函数的参数类型是byte时,只能使用单引号括住字符;


如:通过下标访问输出字符串中特定子串,并输出该字符串的长度

1)编写程序;

package main

import (
    "fmt"
)

func main() {
    var str string = "Hello,World!A"
    fmt.Println(str[:5])
    fmt.Print(str[7:], "\n")
    fmt.Println(str[:])
    fmt.Println(str[len(str)-1])
    fmt.Println(len(str))
}

2)运行结果;
在这里插入图片描述


类型声明

类型声明(命名类型):基于已有的类型创建新的类型

1)Go中没有类型的隐式转换,所以不同类型之间是不可进行算术运算;

2)两个使用相同底层类型的命名类型,不属于相同类型;

3)声明类型通常定义在包级别,且是公开的;

//通过基于函数定义的命名类型可实现函数记忆功能


命名类型的定义格式:type 新类型 底层类型

1)内置类型:数、布尔、字符串、数组、slice、map和函数(func);

2)自定义类型:结构体(struct)、接口(interface)、命名类型(type);

3)具有相同底层类型或都指向相同底层类型的指针类型,可相互转换;

//转换格式:转换类型(对象)


如:定义两个命名类型,尝试比较两者

1)编写程序;
在这里插入图片描述
2)运行结果;
在这里插入图片描述

posted @ 2022-04-29 19:26  爱和可乐的w  阅读(30)  评论(0编辑  收藏  举报