golang 中 取切片元素 与 切片再生成切片的区别
func main() {
//定义一个切片
a := []byte{1, 2, 3}
fmt.Printf("a的类型%T\n", a) //a的类型[]uint8
fmt.Printf("a原来的值%v\n", a) //a原来的值[1 2 3]
//这样[0]没有冒号的情况下,是取切片中的某一个元素的值,就是把切片中某个元素的值复制一份赋值给b
b := a[0]
b >>= 1 //修改b的值,并不会影响切片a底层对应的数组元素的值
fmt.Printf("b的类型%T\n", b) //b的类型uint8
fmt.Printf("a现在的值%v\n", a) //a现在的值[1 2 3]
//利用切片a再次生成一个切片,这个切片里只有一个元素,切片是一个指针不能进行移位操作
c := a[:1]
c[0] >>= 1 //在这里对c切片的第一个元素(就是一个byte)进行移位操作,会影响到a
fmt.Printf("c的类型%T\n", c) //c的类型[]uint8
fmt.Printf("c的值%v\n", c) //c的值[0]
fmt.Printf("a后来的值:%v\n", a) //a后来的值:[0 2 3]
}

golang 中 取切片元素 与 切片再生成切片的区别的更多相关文章
- 仙人指路,引而不发,Go lang1.18入门精炼教程,由白丁入鸿儒,Golang中New和Make函数的使用背景和区别EP16
Golang只有二十五个系统保留关键字,二十几个系统内置函数,加起来只有五十个左右需要记住的关键字,纵观编程宇宙,无人能出其右.其中还有一些保留关键字属于"锦上添花",什么叫锦上添 ...
- Spring中Bean的命名问题(id和name区别)及ref和idref之间的区别
Spring中Bean的命名 1.每个Bean可以有一个id属性,并可以根据该id在IoC容器中查找该Bean,该id属性值必须在IoC容器中唯一: 2.可以不指定id属性,只指定全限定类名,如: & ...
- (转)Spring中Bean的命名问题(id和name区别)及ref和idref之间的区别
Spring中Bean的命名 1.每个Bean可以有一个id属性,并可以根据该id在IoC容器中查找该Bean,该id属性值必须在IoC容器中唯一: 2.可以不指定id属性,只指定全限定类名,如: & ...
- Python:列表中,增加元素、删除元素、切片、其它
一.向列表中增加元素 list.append(单个元素):在list列表末端增加一个元素: list.extend([元素1,元素2]):在list列表末端增加多个元素: list.insert(元素 ...
- GO语言学习——切片三 append()方法为切片添加元素、切片的扩容策略、使用copy()函数复制切片、从切片中删除元素
append()方法为切片添加元素 注意:通过var声明的零值切片可以在append()函数直接使用,无需初始化. var s []int s = append(s, 1, 2, 3) append( ...
- 使用回溯法求所有从n个元素中取m个元素的组合
不多说了,直接上代码,代码中有注释,应该不难看懂. #include <stdlib.h> #include <stdio.h> typedef char ELE_TYPE; ...
- Python 中的反转字符串:reversed()、切片等
摘要:以相反的顺序反转和处理字符串可能是编程中的一项常见任务.Python 提供了一组工具和技术,可以帮助您快速有效地执行字符串反转. 本文分享自华为云社区<Python 中的反转字符串:rev ...
- java中取数组第一个元素
java中取数组第一个元素 var a=[1,2,2,3,4];console.log(a);a.shift();console.log(a); pop:删除原数组最后一项,并返回删除元素的值 ...
- Golang中的Slice与数组
1.Golang中的数组 数组是一种具有固定长度的基本数据结构,在golang中与C语言一样数组一旦创建了它的长度就不允许改变,数组的空余位置用0填补,不允许数组越界. 数组的一些基本操作: 1.创建 ...
- golang中的左值VS右值
对应关系 左值 可寻址 右值 不可寻址 可寻址:可以通过&取地址符,获取内存地址; 可寻址,也就是分配了内存; 不可寻址:根本没有分配内存; 常量const 常量通常只支持数字/字符串/布尔, ...
随机推荐
- <vue 路由 7、导航守卫>
导航守卫 一. 知识点 1.什么是导航守卫? (1)vue-router提供的导航守卫主要用来监听路由的进入和离开. (2)vue-router提供了beforeEach和afterEach的 ...
- vue学习笔记 五、创建子组件实例
系列导航 vue学习笔记 一.环境搭建 vue学习笔记 二.环境搭建+项目创建 vue学习笔记 三.文件和目录结构 vue学习笔记 四.定义组件(组件基本结构) vue学习笔记 五.创建子组件实例 v ...
- token原理分析
- 小白学标准库之 flag
Go 提供了解析命令行参数的 flag 包,本文旨在介绍 flag 的使用及内部实现等. 1. flag 包使用及实现 type PropertyOfPod struct { Namespace *s ...
- 万字血书Vue-Vue进阶
Vue进阶 生命周期 组件运行的过程 组件的生命周期是:组件从创建->运行(渲染)->销毁的整个过程,是一个时间段 如何监听组件的不同时刻 vue框架为组件内置了不同时刻的生命周期函数,是 ...
- 05-逻辑仿真工具VCS-执行过程
Verilog Simulation Event Queue 主要了解VCS是如何处理交给它的代码的 Verilog的仿真事件队列,介绍VCS如何处理交给它的代码.VCS是Synopsys公司的,支持 ...
- [转帖]Data Types
https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html#GUID-A3C0D836-BA ...
- Clickhouse的极简安装-之二(macos+linux)
Clickhouse的极简安装-之二(macos+linux) StudyFrom https://clickhouse.com/docs/en/install 然后简单的获取方式: curl htt ...
- [转帖]PostgreSQL 参数优化设置 32GB内存(推荐) 内存参数 检查点 日志参数 自动初始化参数shell脚本
1.修改参数列表 (1)执行计划 enable_nestloop = off #默认为on enable_seqscan = off #默认为on enable_indexscan = on enab ...
- [转帖]vdbench
https://www.cnblogs.com/AgainstTheWind/p/9869513.html 一.vdbench安装1.安装java:java -version(vdbench的运行依赖 ...