Go数组和切片定义和初始化
1 前言
切片是动态数组,数组数组是按值赋值,切片是按地址赋值(引用)
2 代码
2.1 数组初始化
func basic_array(){
//var arr2 = [3]int{2,4,6} // 1
//arr2 := [3]int{2,4,6} //2
//var arr2[3]int = [3]int{2,4,6} //3
//var arr2 [3]int //4
//arr2=[3]int{1,3,5}
// var arr2 [3]int //5
// var i int
// for i=0;i<len(arr2);i++{
// arr2[i] = 10+i;
// }
// var arr2 [3]int //6
// var arr2 [...]int{1,3,7} //7[...]表示根据元素自适应大小
for i,e := range arr2{
fmt.Println("arr2[",i,"]->",e);
}
}
2.2 切片初始化
func basic_slice(){
//var arr2 = []int{2,4,6} // 1
//arr2 := []int{2,4,6} //2
//var arr2[]int = [3]int{2,4,6} //3
//var arr2 []int //4
//arr2=[]int{1,3,5}
//var slice1 []type = make([]type, len) //5
//slice1 := make([]type, len) //6
//also add parameter capacity
//make([]T, length, capacity) //7,8
for i,e := range arr2{
fmt.Println("arr2[",i,"]->",e);
}
}
3 数组与切片区别
var arr2[3]int = [3]int{2,4,6}
var arr1 = arr2
arr1[1]=11
for i,e := range arr1{
fmt.Println("arr1[",i,"]->",e);
}
for i,e := range arr2{
fmt.Println("arr2[",i,"]->",e);
}
//result
// arr1[ 0 ]-> 2
// arr1[ 1 ]-> 11
// arr1[ 2 ]-> 6
// arr2[ 0 ]-> 2
// arr2[ 1 ]-> 4
// arr2[ 2 ]-> 6
//slice
var arr2[]int = []int{2,4,6}
var arr1 = arr2
arr1[1]=11
for i,e := range arr1{
fmt.Println("arr1[",i,"]->",e);
}
for i,e := range arr2{
fmt.Println("arr2[",i,"]->",e);
}
//result
// arr1[ 0 ]-> 2
// arr1[ 1 ]-> 11
// arr1[ 2 ]-> 6
// arr2[ 0 ]-> 2
// arr2[ 1 ]-> 11
// arr2[ 2 ]-> 6
Go数组和切片定义和初始化的更多相关文章
- [Go] gocron源码阅读-go语言中数组和切片的字面值初始化语法
源码中有这么一句,这个函数要求返回的是[]cli.Command,cli.Command类型的切片,这个地方直接使用字面值初始化了一个切片返回去了 return []cli.Command{comma ...
- go语言之行--数组、切片、map
一.内置函数 append :追加元素到slice里,返回修改后的slice close :关闭channel delete :从map中删除key对应的value panic : 用于异常处理,停 ...
- C 语言字符数组的定义与初始化
1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'} ...
- C++中数组定义及初始化
一.一维数组 静态 int array[100]; 定义了数组array,并未对数组进行初始化 静态 int array[100] = {1,2}: 定义并初始化了数组array 动态 int* ar ...
- C语言中二维字符数组的定义和初始化
本篇日志关于二维字符数组的定义和初始化.我相信这篇文章属于菜鸟级的,高手请直接无视. 一般来说,我们可能会希望定义一个二维字符数组并且在定义的时候就用一些字符串来初始化它.比如说: ][MAX_LEN ...
- 各种C#数组的定义和初始化
各种C#数组的定义和初始化2009-08-26 18:28 岁月联盟 字号:T | T一键收藏,随时查看,分享好友!本文介绍了C#数组定义和初始化,包括一维数组.交错数组和多维数组,供大家参考.AD: ...
- [Go] 复合类型(数组、切片、字典、结构体)变量的 初始化 及 注意事项
Go变量 初始化 对 复合类型(数组.切片.字典.结构体)变量的初始化是,有一些语法限制: 1.初始化表达式必须包含类型标签: 2.左花括号必须在类型尾部,不能另起一行: 3.多个成员初始值以逗号分隔 ...
- js二维数组定义和初始化的三种方法总结
js二维数组定义和初始化的三种方法总结 方法一:直接定义并且初始化,这种遇到数量少的情况可以用var _TheArray = [["0-1","0-2"],[& ...
- Java数组定义及初始化
数组定义及初始化 数组这玩意是一种用于存放数据最常见数据结构. 数组的的概念及注意点 数组要求所有的数组元素具有相同的数据类型,且只能存在一种数据类型,要多专一有多专一. 数据类型既可以是基本类型也可 ...
随机推荐
- Unable to find CMake in android studio
- Asp.Net 初级 高级 学习笔记
01.Main函数是什么?在程序中使用Main函数有什么需要注意的地方?02.CLR是什么?程序集是什么?当运行一个程序集的时候,CLR做了什么事情?03.值类型的默认值是什么?(情况一:字段或全局静 ...
- 小程序开发 从简单的 crud 开始
关键字:“小程序 API” [WXML 完成布局] <view> == <div> {{}} == <%= %> ejs | jsp2 <block wx: ...
- Chrome之控制台使用【转载】
原文链接:https://segmentfault.com/a/1190000002511877 关键API: console.log(); console.info(); console.warn( ...
- git常用命令(转载自用)
转载自 阮一峰博客: http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html 一个码农博客: http://blog.gitor.org ...
- Ubuntu18.04+GTX1080Ti+CUDA9.0+cuDNN7.0+TensorFlow-GPU1.9环境搭建【2018年11月配置成功】
注:下面的的驱动版本不要安装最新(默认)的版本,因为会遇到各种问题,将会浪费你的大量时间.(当然大神无视) 环境 系统:Ubuntu 18.04 LTS 显卡:GTX1080Ti CUDA:9.0 c ...
- Ubuntu安装MongoDB
一.下载安装 首先,更新软件包列表以获取最新版本的存储库列表: sudo apt update 2.接着安装MongoDB包本身: sudo apt install -y mongodb ×加-y是为 ...
- MLE
独立同分布的采样x1,x2,…,xn,θ为模型参数,f为我们所使用的模型.参数为θ的模型f产生上述采样可表示为 f(x1,x2,…,xn|θ)=πf(xi|θ) 已知的为x1,x2,…,xn,未知为θ ...
- JSON格式说明
JSON的优点 相比XML拥有更简单的格式. 不同WEB浏览器处理的结果一样. 纯文本数据交换格式. JSON格式特点 {} 对象定义域 key:value 定义属性 key 字符串格式,value ...
- PKUSC2018游记
由于菜鸡DreamlessDreams还需要准备中考的原因....这篇游记拖到今天才发. Day0:出发+报道 ...