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. SSH框架的搭建和测试(Spring + Struts2 + Hibernate)

    SSH框架实现了视图.控制器.和模型的彻底分离,同时还实现了业务逻辑层与持久层的分离. Spring实现了MVC中的 Controller的功能,Struts实现Web视图的功能,Hibernate则 ...

  2. Django眼中的MVC

    (转载)http://www.cnblogs.com/michaely/p/3340087.html MVC是众所周知的模式,即:将应用程序分解成三个组成部分:model(模型),view(视图),和 ...

  3. 中间人攻击(MITM)之数据截获原理

    中间人攻击(MITM)之数据截获原理 - The data interception principle of the man in the middle attack (MITM) 交换式局域网中截 ...

  4. [C++]油田(Oil Deposits)-用DFS求连通块

    [本博文非博主原创,均摘自:刘汝佳<算法竞赛入门经典>(第2版) 6.4 图] [程序代码根据书中思路,非独立实现] 例题6-12 油田(Oil Deposits,UVa572) 输入一个 ...

  5. ThinkPHP5基础学习(慕课版)

    一.thinkphp 5.0 的安装及配置 二.URL和路由 三.请求和相应 四.视图和模板 五.数据库的操作 六.模型的操作

  6. sql server 2008 windows验证改混合登陆中SqlServer身份验证用户名密码

    安装过程中,SQL Server 数据库引擎设置为 Windows 身份验证模式或 SQL Server 和 Windows 身份验证模式.本主题介绍如何在安装后更改安全模式. 如果在安装过程中选择“ ...

  7. ssm mysql 新增数据返回id

    描述: 在ssm项目中,新增一条数据,返回该数据的数据库id(主键) 实现方法: 1.xml 增加  useGeneratedKeys="true" keyProperty=&qu ...

  8. 允许长单词、数字、URL换行到下一行

    CSS3 word-wrap 属性 normal 只在允许的断字点换行(浏览器保持默认处理) break-word 在长单词.数字.URL地址内部进行换行 页面效果图: 源码:

  9. modbus 寄存器介绍

    modbus 的查询命令 命令 地址开始(两个地址)     地址长度(两个地址)          检验 01  xx     xx xx                              ...

  10. Nginx系列6:对称加密与非对称加密各自的应用场景

    强推:推荐一篇通俗易懂的对称加密和非对称加密的文章:https://segmentfault.com/a/1190000004461428 推荐一篇文章:对称加密算法与非对称加密算法的优缺点:http ...