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数组和切片定义和初始化的更多相关文章

  1. [Go] gocron源码阅读-go语言中数组和切片的字面值初始化语法

    源码中有这么一句,这个函数要求返回的是[]cli.Command,cli.Command类型的切片,这个地方直接使用字面值初始化了一个切片返回去了 return []cli.Command{comma ...

  2. go语言之行--数组、切片、map

    一.内置函数 append :追加元素到slice里,返回修改后的slice close :关闭channel delete :从map中删除key对应的value panic  : 用于异常处理,停 ...

  3. C 语言字符数组的定义与初始化

    1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'} ...

  4. C++中数组定义及初始化

    一.一维数组 静态 int array[100]; 定义了数组array,并未对数组进行初始化 静态 int array[100] = {1,2}: 定义并初始化了数组array 动态 int* ar ...

  5. C语言中二维字符数组的定义和初始化

    本篇日志关于二维字符数组的定义和初始化.我相信这篇文章属于菜鸟级的,高手请直接无视. 一般来说,我们可能会希望定义一个二维字符数组并且在定义的时候就用一些字符串来初始化它.比如说: ][MAX_LEN ...

  6. 各种C#数组的定义和初始化

    各种C#数组的定义和初始化2009-08-26 18:28 岁月联盟 字号:T | T一键收藏,随时查看,分享好友!本文介绍了C#数组定义和初始化,包括一维数组.交错数组和多维数组,供大家参考.AD: ...

  7. [Go] 复合类型(数组、切片、字典、结构体)变量的 初始化 及 注意事项

    Go变量 初始化 对 复合类型(数组.切片.字典.结构体)变量的初始化是,有一些语法限制: 1.初始化表达式必须包含类型标签: 2.左花括号必须在类型尾部,不能另起一行: 3.多个成员初始值以逗号分隔 ...

  8. js二维数组定义和初始化的三种方法总结

    js二维数组定义和初始化的三种方法总结 方法一:直接定义并且初始化,这种遇到数量少的情况可以用var _TheArray = [["0-1","0-2"],[& ...

  9. Java数组定义及初始化

    数组定义及初始化 数组这玩意是一种用于存放数据最常见数据结构. 数组的的概念及注意点 数组要求所有的数组元素具有相同的数据类型,且只能存在一种数据类型,要多专一有多专一. 数据类型既可以是基本类型也可 ...

随机推荐

  1. Char类型与Sting类型的数字字符转换时的不同点

    这是在一次编程时的bug里偶然发现的一个问题.在C#中,单引号默认是char类型字符,而双引号默认是string类型字符.对于char类型的数字字符,通过强制类型转换或者convert转换,转换成的整 ...

  2. Python Thrift 简单示例

    本文基于Thrift-0.10,使用Python实现服务器端,使用Java实现客户端,演示了Thrift RPC调用示例.Java客户端提供两个字符串参数,Python服务器端计算这两个字符串的相似度 ...

  3. Android中的分层----service 层,domain层,dao 层,action层等设计

    service 层 服务层:直接为客户端提供的服务或功能.也是系统所能对外提供的功能. domain层 领域层:系统内的领域活动,存放实体. dao 层 持久层,DB操作都写在这里,数据访问对象,通过 ...

  4. DevExpress Winform 常用控件

    Ø  前言 DevExpress 控件的功能比较强大,是全球知名控件开发公司,对于开发 B/S 或 C/S 都非常出色,可以实现很炫且功能强大的效果. DevExpress Winform 常用控件是 ...

  5. 【bzoj4530】[Bjoi2014]大融合 LCT维护子树信息

    题目描述 小强要在N个孤立的星球上建立起一套通信系统.这套通信系统就是连接N个点的一个树. 这个树的边是一条一条添加上去的.在某个时刻,一条边的负载就是它所在的当前能够联通的树上路过它的简单路径的数量 ...

  6. springboot11-01-security入门

    场景: 有3个页面:首页.登录页.登录成功后的主页面,如下图: 如果没有登录,点击“去主页”,会跳转到登录页 如果已经登录,点击“去主页”,跳转到主页,显示“hello 用户名” 下面用springb ...

  7. 基础必备Linux操作

    求助 1. --help 指令的基本用法与选项介绍. 2. man man 是 manual 的缩写,将指令的具体信息显示出来. 3. info info 与 man 类似,但是 info 将文档分成 ...

  8. linux 普通用户下使用 jdk 、Tomcat

    需求: 在已经跑的 1.7java环境中需要跑1.8java环境所需要的tomcat,那么因为java环境的不同,nginx代理会出现很多问题,tomcat根本跑不起来,所以提供了以下解决方案. 一, ...

  9. ES6走一波 Iterator

    Iterator---> for ... of 循环 Generator函数原生具有 Iterator接口,所以可采用数组的形式解构赋值

  10. Python Tornado简介

    简介 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过为了 ...