小工具      在线工具  汉语词典  dos游戏  css  js  c++  java

Go语言常用类型的定义

Go,golang 额外说明

收录于:18天前

变量定义

	//定义一个变量
	// var 变量名 变量类型
	var name string

	//批量命名
	var (
		a int
		b string
		c []string
		d func() bool
		e struct {
    
			x int
			y string
		}
	)
	//使用var关键字可以将变量定义在一起

	//简便格式
	//除了使用var外还可以使用更加简短的初始化定义方法, 名称 := 表达式
	x, y = 0, "string"
	/* 简短格式必须要初始化, 简短格式不能提供数据类型, 简短格式只能定义来函数内部 注意:在多个短变量声明和赋值中,至少有一个新声明的变量出现在左值中,即便其他变量名可能是重复声明的,编译器也不会报错。 */

	//初始化命令
	var name string = "_小许_"

	//编译器推导命名
	var name = "_小许_"

数组定义

	/* 数组定义 */
	//数组是一个固定长度的序列

	//var 数组变量名 [元素数量]Type
	//Type:可以是任意基本类型,包括数组本身,类型为数组本身时,可以实现多维数组。
	var a [3]int

	//初始值定义
	var b [3]string = [3]string{
    "_小许_"}
	//简写形式
	var b1 = [3]string{
    "_小许_"}
	/* 这是变量定义内容,任何变量定义定义时初始化可以省去类型,由编译器推导类型 是局部变量还能用简写的形式 */

	//位置长度定义,...由初始化定义
	q := [...]int{
    1, 2, 3}

	//多维数组的定义
	//var array_name [size1][size2]...[sizen] array_type
	// 使用数组字面量来声明并初始化一个二维整型数组
	array := [4][2]int{
    {
    10, 11}, {
    20, 21}, {
    30, 31}, {
    40, 41}}

	//切片的定义
	//切片(slice)是对数组的一个连续片段的引用,所以切片是一个引用类型

	//切片默认指向一段连续内存区域,可以是数组,也可以是切片本身。
	//从连续内存区域生成切片是常见的操作,格式如下: slice [开始位置 : 结束位置]
	//一般具有索引的数据结构都有切片

	//声明切片
	var name []Type
	//make() 函数构造切片
	make([]Type, size, cap)

	//其中 Type 是指切片的元素类型,size 指的是为这个类型分配多少个元素,cap 为预分配的元素数量,这个值设定后不影响 size,只是能提前分配空间

	//Go语言的内建函数 append()可以为切片动态添加元素
	var a []int
	a = append(a, 1, 2, 3) // 追加多个元素

	//Go语言的内置函数copy() 可以将一个数组切片复制到另一个数组切片中,如果加入的两个数组切片不一样大,就会按照其中较小的那个数组切片的元素个数进行复制。
	copy( destSlice, srcSlice []T) int

	//copy()函数的返回值表示实际发生复制的元素个数。


	//go语言提供了for 和for-range两种方式变量集合
	for index, value := range slice {
    
		fmt.Printf("Index: %d Value: %d\n", index, value)
	}

字典定义

/** 字典定义 */
//map是一种特殊的数据结构,一种元素对(pair)的无序集合,pair 对应一个 key(索引)和一个 value(值),所以这个结构也称为关联数组或字典

var mapname map[keytype]valuetype
//mapname 为 map 的变量名。
//keytype 为键类型。
//valuetype 是键对应的值类型。

//map的容量是动态的,map也可以使用切片和make()方法

列表定义

/* 列表的定义 */
//列表使用 container/list包来实现,内部的实现原理是双链表,列表能够高效地进行任意位置的元素插入和删除操作。
//list 的初始化有两种方法:分别是使用 New() 函数和 var 关键字声明

//初始化一个空的列表
变量名 := list.New()

//声明一个列表类型,由编译器自动初始化
var 变量名 list.List

//列表并没有具体元素类型的限制,因此,列表的元素可以是任意类型
//但是go没有泛型的概念,不知道元素的类型
. . .

相关推荐

额外说明

成功转行软件测试工程师,年薪30W+,经验总结都在这!

这是给转行做软件测试的小白的参考,无论是从零开始,或者是转行的朋友来说,这都是值得一看的,也是可以作为一种借鉴吧。 而且我决定转行IT(互联网)行业,其实理由也很简单,不用动体力,大多数动的是脑力工作,而且现在的互联网趋势很明显。再者看到一些网上的招聘平

额外说明

如何有效地进行代码 Review?

文章目录 为什么要做代码 Review 1.提高代码质量 2.分享知识和经验 3.减少bug 4.统一编码规范 5.培养新人 6.构建团队精神 如何进行有效地代码review 1.重点关注代码的结构和质量 2.提出建设性意见 3.分清主次要点 4.提供全

额外说明

网络原理之初识

文章目录 前言 计算机网络的发展史 网络互连 局域网 局域网组建网络的方式 广域网 网络通信基础 IP 地址 端口号 网络协议 五元组 协议分层 OSI 七层模型 TCP/IP 五层协议 网络设备所在分层 封装和分用 前言 在这个信息爆炸的时代,计算机网

额外说明

【从入门到起飞】IO高级流(1)(缓冲流,转换流,序列化流,反序列化流)

-专栏【JavaSE】 -喜欢的诗句:天行健,君子以自强不息。 -音乐分享【如愿】 -欢迎并且感谢大家指出小吉的问题- 文章目录 -缓冲流 -字节缓冲流 -一次读取一个字节 -一次读取多个字节 -字符缓冲流 -转换流 -利用转换流按照指定的字符编码读取数

额外说明

二分查找(my理解和模板)

 之前先学了y总的二分,后来又看了代码随想录的,感觉代码随想录的更好记忆 二分查找需要的数据必须是有序的。如果数据没有序,我们需要先排序,排序的时间复杂度最低是 O(nlogn)。 二分查找底层依赖的是数组,数组需要的是一段连续的存储空间,所以数据量太大

额外说明

【Go 基础篇】Go语言初探:第一段代码与执行过程解析

介绍 Go语言(也称为Golang)作为一门现代化的编程语言,以其简洁的语法、高效的性能和丰富的标准库而受到了广泛关注和使用。对于初学者来说,编写和执行第一段Go代码是迈向这门语言的重要一步。本篇博客将带您深入了解Go语言的第一段代码,同时分析其执行过程

额外说明

写时复制技术

写时复制(Copy-On-Write,COW)是一种计算机科学中常见的技术,用于在对共享资源进行写操作时,确保并发环境下的数据一致性。 1. 原理 初始共享状态:在共享资源被多个进程或线程共享时,初始时它们都指向相同的内存区域,内容是相同的。 写操作发生

额外说明

【opencv】指定宽或高按比例缩放图片 & 拼接图片

指定宽或高按比例缩放图片 import cv2 def resize_by_ratio(image, width=None, height=None, inter=cv2.INTER_AREA): img_new_size = None

额外说明

MyBatis从入门到精通(三)—MyBatis多表查询和注解开发

文章目录 Mybatis多表查询 一对一查询 一对一查询的模型MapperScannerConfigurer 一对一查询的语句 创建Order和User实体 创建OrderMapper接口 配置OrderMapper.xml 测试结果 一对多查询 一对多

额外说明

解决Windows系统缺少找不到dpserial.dll文件的问题错误

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个dpserial.dll文件

ads via 小工具