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

Go语言常用类型的定义

Go,golang 额外说明

收录于:152天前

变量定义

	//定义一个变量
	// 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没有泛型的概念,不知道元素的类型
. . .

相关推荐

额外说明

将 Autoprefixer 浏览器选项替换为 Browserslist 配置。在 package.json 中使用 browserslist 键

Replace Autoprefixer browsers option to Browserslist config.   Use browserslist key in package.json or .browserslistrc file.  

额外说明

深度解析:面试官问你项目经验到底能问多细?(附实战项目)

马上年关了,很多准备拿完年终跑路的小伙伴们可以看过来啦,为年后跳槽做点准备;暂时不准备挪窝的也可以来看看,有备无患嘛 面试难点 其实面试同一个岗位的话,大家的基础知识技能都差不多,面试官一般都是通过你简历上过往的项目经验来甄别你跟他们公司的适配性,所以经

额外说明

flutter 初识(开发体验,优缺点)

前言 最近有个跨平台桌面应用的需求,需要支持 windows/linux/mac 系统,要做个更新应用的小界面,主要功能就是下载更新文件并在本地进行替换,很简单的小功能。 花了几分钟构建没做 UI 优化的示例界面: 由于我们的客户端程序员最近很忙,没时间

额外说明

Java成神路 —— 面向对象

文章目录 1. 类和对象 1.1 类和对象的理解 1.2 类的定义 1.3 对象的使用 2. 成员变量和局部变量 2.1 成员变量和局部变量 2.2 成员变量和局部变量的区别 3. 封装 3.1 private关键字 3.2 this关键字 3.3 封装

额外说明

基于Cucumber的行为驱动开发(BDD)实例

本篇介绍 Cucumber 的基本使用, 因为Cucumber是BDD的工具, 所以首先需要弄清楚什么是BDD,而在介绍BDD之前,先看看常见的软件开发方法。 常见的软件开发方法 面向过程开发(Procedural Development):面向过程开发

额外说明

DEiT实战:使用DEiT实现图像分类任务(二)

文章目录 训练 导入项目使用的库 设置随机因子 设置全局参数 图像预处理与增强 读取数据 设置模型 train.py train_dist.py 定义训练和验证函数 训练函数 验证函数 调用训练和验证方法 运行以及结果查看 测试 完整的代码 在上一篇文章

额外说明

【问题】Cause: java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK

主要问题 在使用SpringBoot整合Mybatis操作Oracle数据库的时候,报错信息如下: ### Cause: org.apache.ibatis.executor.result.ResultMapException: Error attemp

额外说明

IE6/IE7和Firefox对Div处理的差异

基本HTML代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dt

额外说明

数据的绑定DataBinder 的问题

ACT   :   开始   ——   程序   ——   VS   2003   ——   企业办功能   ,在这里有。         转载   ===================     三、数据的绑定DataBinder           

额外说明

解决Windows中d3dx10_35.dll文件错误

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或者损坏了,这时你只需下载这个d3dx10_35.dll文件进行安装(前提是找到适合的版本)

ads via 小工具