1、结构体 struct
定义格式:
type 结构体名称 struct { 属性1 类型 属性2 类型 ... }
结构体的初始化可以使用new关键词和var关键词,不同的是如果使用new,则返回类型是一个指针,使用var,则是结构体自身。
type User struct { name string age int } user := new(User) user.name = "tom" user.age = 20 fmt.Println(user) //输出&{tom 20}
上例中使用new来初始化一个结构体,user的类型就是*User,在输出内容中的&字符号也表现了这点。接下来看下使用var的情况:
type User struct { name string age int } var user User user.name = "tom" user.age = 20 fmt.Println(user) //输出{tom 20}
这里输出中没有&符号了。
如果结构体属性比较多,每个属性初始化都要一行,代码就显的比较冗长,Go语言提供更简洁的写法:
type User struct { name string age int } user := User{"tom", 20} //按顺序给属性赋值 //user := User{age: 20, name: "tom"} //指明属性赋值 fmt.Println(user)
要注意的就是如果不指明属性,就是按照结构体内属性的先后顺序进行赋值。
2、数组 array
数组使用很广泛,很多语言都有会有数组的实现。
定义格式:
[长度]类型{初始化值}
其中长度可以省略或者换成三个点“…”,如果这么做的话,系统会根据初始化的值自动定义数组的长度。
简单的示例:
arr := [2]int{3, 2} //arr := []int{3, 2} //arr := [...]int{3, 2} fmt.Println(arr) //输出[3 2]
如果指明了长度,但是没有初始值,则会根据数组类型初始化每个值
arr := [5]int{} fmt.Println(arr) //输出[0 0 0 0 0]
3、切片 slice
切片可以和数组很好的配合使用,可以用来获取数组中一段数据。格式:
数组变量[开始索引:结束索引]
其中不包括结束索引。
arr := [5]int{3,4,5,6,7} slice := arr[0:3] fmt.Println(slice) //输出[3 4 5]
切片也可以用于字符串:
str := "Anny is a beautiful girl." fmt.Print(str[0:6]) //输出Anny i
4、字典 map
在Go语言数组中,字符串是不能做键值的,我觉着字典很好的弥补了这个不足。
字典定义格式:
map[键类型] 值类型 { 键: 值, .... }
一个简单示例:
ages := map[string] int { "tom": 21, "anny": 18, } fmt.Println(ages["tom"])
使用字典时,还能动态添加字典元素,也很方便。
ages := map[string] int { "tom": 21, "anny": 18, } ages["jack"] = 20 fmt.Println(len(ages))
如果键在字典里是不存在的,则返回一个默认值,默认值根据不同的类型决定。
ages := map[string] int { "tom": 21, "anny": 18, } fmt.Println(ages["jack"]) //输出0<!-- 336x280 --> <iframe id="aswift_1" style="left: 0px; top: 0px; position: absolute;" name="aswift_1" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="336" height="280"></iframe>
相关推荐
本文将详细介绍Go语言中的数据类型,包括基本数据类型和复合数据类型。 #### 二、基本数据类型 基本数据类型是指在Go语言中直接支持的数据类型,它们不需要额外的定义或构造即可使用。主要包括以下几类: 1. **...
此外,Go语言还支持复合数据类型,如数组(array)、切片(slice)、映射(map)和结构体(struct)等。 #### 运算符和内置函数 Go语言支持多种运算符,包括算术运算符、比较运算符、逻辑运算符和位运算符等。此外,Go语言...
在Go语言中,结构体(Struct)是一种复合数据类型,用于封装多个相关变量,这些变量可以具有不同的数据类型。在上述课程中,我们看到结构体的定义和使用方法。Go语言允许我们在结构体中定义任意类型的成员,包括基本...
### 复合数据类型 #### 数组(Array) 数组是Go语言中最基本的数据结构之一,它是一组固定长度的相同类型的元素集合。 示例: ```go data := [3]int{0, 1, 2} ``` #### 切片(Slice) 切片是数组的一个连续片段,它...
Go语言中的数据类型分为基础类型和复合类型两大类: - **基础类型**: - **布尔类型**(bool):只有两个值:true和false。 - **数字类型**:支持整数(int)、浮点数(float)、复数(complex)。 - **字符串类型**...
- **数据类型**:包括基本类型如整型(int),浮点型(float32/64),字符串(string),布尔型(bool)等,以及复合类型如数组(array),切片(slice),映射(map),结构体(struct)等。 - **控制流**:Go语言提供了`if`,`...
Go语言中支持的数据结构包括: 数组(Array):一组具有相同类型的数据元素的集合,通过下标进行访问。 切片(Slice):动态数组,可以根据需要增加或删除元素,支持切片操作。 映射(Map):一组键值对的无序...
- 复合类型:数组(array)、切片(slice)、映射(map)、结构体(struct)。 - 指针类型:通过`*`操作符表示,如`var ptr *int`。 5. **接口(Interface)** Go语言的接口是一种抽象类型,它定义了一组方法...
此外还包括数组(`array`)、结构体(`struct`)、字符串(`string`)、切片(`slice`)、映射(`map`)、通道(`channel`)、接口(`interface`)等复合类型。 - **布尔类型**:只有两个可能的值:`true`和`false`。 - **整型**...
Go语言,又称为Golang,是由Google开发的一种静态类型的、编译式的、并发型且具有垃圾回收功能的编程语言。本学习笔记主要涵盖了Go语言的基础知识,包括类型、表达式、函数、数据结构、方法、接口、并发以及包管理等...
它还支持复合类型,如数组(array)、切片(slice)、映射(map)和结构体(struct)。数组长度固定,而切片则可动态扩展。 三、控制结构 Go中的控制结构包括条件语句(if-else)、循环(for、while)、switch和...
Go 语言编程 + Go 学习笔记, 第 部分 语 第 1 章 类型 1.1 变量 1.2 常量 1.3 基本类型 1.4 引 类型 1.5 类型转换 1.6 字符串 1.7 指针 1.8 定义类型 第 2 章 表达式 2.1 保留字 2.2 运算符 2.3 初始化 2.4 控制流 ...
Go语言支持多种数据类型,如整型(int)、浮点型(float64)、字符串(string)等。变量声明可以使用`var`关键字,也可以使用更简洁的`:=`操作符。此外,Go语言还有一系列保留字,如`if`、`else`、`for`等。 ```go var a ...
Go语言的基本类型: * 布尔型:bool + 长度:1字节 + 取值范围:true, false + 注意事项:不可以用数字代表true或false * 整型:int/uint + 根据运行平台可能为32或64位 * 8位整型:int8/uint8 + 长度:1字节 ...
Google出品的GO语言,最近有火起来的趋势。据众大神说,GO语言弥补了C和C++还其他语言的缺陷,颇有白富美的感觉。 网络上搜索了一番,发现【吾爱】上并没有GO语言的视频下载,其他站点也很少提供GO语言的视频教学。 ...
2. **数组(Array)**:数组是一种固定长度的数据类型,Go语言中的数组大小在声明时必须确定。 ### 切片与字典 1. **切片(slice)**:切片是一种灵活的数据结构,可以动态调整长度。 2. **字典(Map)**:字典是无序...
Go语言提供了多种数据结构,如数组(array)、切片(slice)、映射(map)、结构体(struct)等,它们都有各自的特性和用途。 并发编程: Go语言的并发模型基于goroutine和channel。goroutine是一种轻量级的线程,...
福马姆 一个Go包,用于解码HTTP表单和查询参数。 唯一的要求是或更高版本。 特征 maps , structs和slices无限嵌套。 在地图的值和键中支持... 附加到slice和array类型,但未明确指示索引。 注册自定义类型
Go语言的指针是一种特殊的数据类型,允许存储变量的内存地址。Go语言中的指针概念与C语言类似,但在使用上有一些差异。Go语言的指针不能进行算术运算,例如不能对指针进行加减操作。指针在Go语言中通常用于需要改变...