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数组定义及初始化
数组定义及初始化 数组这玩意是一种用于存放数据最常见数据结构. 数组的的概念及注意点 数组要求所有的数组元素具有相同的数据类型,且只能存在一种数据类型,要多专一有多专一. 数据类型既可以是基本类型也可 ...
随机推荐
- 爬虫基础01-day23
写在前面 上课第23天,打卡: 每天进步一点,开心一点 ^_^ 爬虫 - 基本操作 概要: - 发送Http请求,Python Http请求,requests - 提取指定信息,Python 正则 ...
- LINQ to SQL 中 Concat、Union、Intersect、Except 方法的使用
Ø 前言 LINQ to SQL 中需要对两个或多个数据集进行操作,比如:合并.取交集等,主要使用下面四个方法,这四个方法都是 System.Linq.IQueryable<out T> ...
- 局域网内ping [局域网内ip地址]命令详解
一.工作过程 主机A向主机B发送一个ICMP请求报文[类型字段为8,代码字段为0],若收到ICMP回复报 文[类型字段为0,代码字段为0]则说明主机B处于活动状态:若超时未收到回复,则可能是 因为(1 ...
- SSH整合方案一(带有hibernate.cfg.xml)
整体结构 1.导入响应的jar包 2.在web.xml中配置struts的过滤器和spring整合web的监听器 <!--配置Spring整合web的监听器--> <listener ...
- SQL Server 远程备份详解
例1: 有A数据库服务器,B本机: 我现在想通过在B机器上通过代码调用SQL来执行A数据库的备份到B机器上 调用的SQL语句为:Backup Database MYDATABASE To Disk=' ...
- Docker 容器的隔离性
Docker 容器的隔离性 就是 使用Linux namespace 来隔离运行环境和成 cgroup 限制容器使用的资源. namespace 可以顾名思义 命名空间:所以可以理解为每个独立的容器 ...
- Coursera, Machine Learning, Neural Networks: Representation - week4/5
Neural Network Motivations 想要拟合一条曲线,在feature 很多的情况下,feature的组合也很多,在现实中不适用,比如在computer vision问题中featu ...
- 第一章 Android系统的编译和移植实例
第一章 Android系统的编译和移植实例 这一章节主要介绍了Android系统的编译和移植技术,作为建立在Linux内核的基础上的Android操作系统,它的编译和移植不论在过程还是技术方面都和嵌入 ...
- Python 包
转载自https://www.cnblogs.com/feeland/p/4401758.html Python 包 包 定义 为了组织好模块,会将多个模块分为包.Python 处理包也是相当方便的. ...
- android4.4之后的HttpUrlConnection的实现是基于okhttp
首先看HttpUrlConnection使用 URL url = new URL("http://www.baidu.com"); HttpURLConnection urlCon ...