切片(slice)

article/2025/10/28 23:30:30

一.切片的基本介绍(slice)

        (1) 切片是一个数组的引用,因此切片是引用类型,在进行传递时,遵守引用传递的机制。

        (2) 切片的使用和数组类似,遍历切片、访问切片的元素和求切片长度len(slice)都一样

        (3)切片的长度是可以变化的,因此切片是一个可以动态变化的数组

        (4)切片定义的基本语法:

              var 变量名 []类型

             比如:var a [] int

              

 二.切片的使用

     第一种方式:定义一个切片,然后让切片去引用一个创建好的数组

               

     第二种方式:通过make来创建切片

            基本语法:var 切片名 []type = make([],len,[cap])

            参数说明:type:就是数据类型;len:大小;cap:指定切片容量

             

             小结:

               1.通过make方式创建切片可以指定切片的大小和容量

               2.如果没有给切片的各个元素赋值,那么就会使用默认值

               3.通过make方式创建切片对应的数组是由make底层维护,对外不可见,                                            即只能通过slice去访问各个元素

   第三种方式:定义一个切片,直接就指定具体数组,使用原理类似make的方式

               

        注意:

             方式一和方式二的区别

             方式一是直接引用数组,数组是事先存在的,可见

             方式二是通过make来创建,make也会创建一个数组,是由切片在底层维护,是看                                      不见的。

三.切片的遍历

      1.for循环常规方式遍历

       

       2.for-range结构遍历切片

     

四.切片注意事项

     1.切片初始化时 var slice = arr[start:end] 从star下标开始,到end结束,不含end

     2.切片初始化时,任然不能越界。范围在[0-len(arr)]之间,但是可以动态增长。  

         (1)var slice = arr[0:end] 可以简写var slice = arr[0:end]

         (2)var slice = arr[start:len(arr)] 可以简写为 var slice = arr[start:]

         (3)var slice = arr[0:len(arr)] 可以简写为 var slice = [:]

    3.cap是一个内置函数,用于统计切片的容量,即最大可以存放多少个元素。

    4.切片定义完后,还不能使用,因为本身是一个空的,需要让其引用到一个数组,或者make一         个空间供切片使用

   5.切片可以继续切片

   6.用append内置函数,可以对切片进行动态追加

          

        切片append操作的底层原理分析:

        1.切片append操作的本质就是对数组扩容

        2.go底层会创建一个新的数组newArr(安装扩容后大小)

        3.将slice原来包含的元素拷贝到新的数组newArr

        4.slice重新引用到newArr

        5.注意newArr是在底层来维护的,程序员不可见

        6.切片的拷贝操作

         

           copy(para1,para2)参数的数据类型是切片

           slice4和slice5的数据空间是独立的,相互不影响 

五.string和slice

     1.string底层是一个byte数组,因此string也可以进行切片处理

           

六.切片练习

     编写一个fbn(n int)函数,可以接收n int 能够将斐波那契的数列放到切片中

       


http://chatgpt.dhexx.cn/article/ay2eb83b.shtml

相关文章

切片基础知识

一、切片含义 1.切片(slice)是对序列型对象的一种高级索引方法。python中是用来切割可迭代对象(容器) 2.切片对象:列表list, 字符串string, 元组tuple,range函数等 二、形式 一个完整的切片有三个参数 object[start:end:step…

Python中的切片(详细篇)学起来喔

Python中的切片知识. 在Python中,切片(slice)是对序列型对象(如list, string, tuple)的一种高级索引方法。 普通索引只取出序列中 一个下标 对应的元素,而切片取出序列中 一个范围 对应的元素,这里的范围不是狭义上的连续片段。通俗一点就是…

Python基础知识:切片

什么是切片操作 在Python中,切片(slice)是对序列型对象(如list, string, tuple)的一种高级索引方法。普通索引只取出序列中一个下标对应的元素,而切片取出序列中一个范围对应的元素,这里的范围不是狭义上的连续片段。下面的代码初步展示了切…

Django 对接 Mysql Datatime 日期格式化处理

查询显示结果时,前端界面会是英文格式显示日期,那么应该怎么处理? 这里直接在前端操作,将日期格式化 “ | ” 符号后,拼接日期格式根据本身数据库显示格式来去,我这里是年月日,时分秒

MySQL 日期类型小数秒的处理

一、 MySQL 日期类型对小数秒的支持 注:本文所使用MySQL版本为 5.7 版本。 官方文档:https://dev.mysql.com/doc/refman/5.7/en/fractional-seconds.html 1、小数秒位数精度 MySQL 支持小数秒的展示,比如官网的例子,在建表时&…

Java 接收 MySQL datetime 类型日期字段输出格式问题

文章目录 前言Java 与 MySQL 类型对应注解操作代码格式转换参考 前言 不管世事多艰难,别忘了,看开点儿,再温柔点儿,不要满身戾气,也不要紧皱眉头,生活都是在你眉开眼笑的时候,一天天好起来的。…

mysql查询数据库日期_mysql如何查询日期与时间

前言: 在项目开发中,一些业务表字段经常使用日期和时间类型,而且后续还会牵涉到这类字段的查询。关于日期及时间的查询等各类需求也很多,本篇文章简单讲讲日期及时间字段的规范化查询方法。 1.日期和时间类型概览 MySQL支持的日期和时间类型有 DATETIME、TIMESTAMP、DATE、…

操作MYSQL日期格式年 或 月 或 日

1,年(year): select year(create_time) from person2,月(month): select month(create_time) from person3,日(day): select day(create_time) from person4,yyyy-MM-…

关于Thymeleaf 日期字段时间格式化处理

1.接手项目时测试发现页面时间格式不对&#xff0c;如图所示&#xff1a; 代码调整前: <input type"text" name"recruitTime" th:field"*{recruitTime}" class"form-control" placeholder"yyyy-MM-dd HH:mm" required&g…

mysql里如何写日期_mysql之日期函数

写在前面 mysql的学习,断断续续,今天就接着学习mysql的日期操作吧。 系列文章 Mysql实战 1、获得当前时间格式yyyy-MM-dd HH:mm:ss select now(); 结果 另外一个获取当前时间的函数是:sysdate(); 区别:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。 …

MYSQL中时间毫秒数转换及日期格式化

一、时间戳转换成日期 java中常用bigint字段保存时间&#xff0c;通常将时间保存为一大串数字&#xff0c;每次取出需要在程序里转换&#xff0c;有时候程序里不方便&#xff0c;可以使用MYSQL自带的函数 FROM_UNIXTIME(unix_timestamp,format)。 举例&#xff1a; select …

MySql格式化日期

原文路径&#xff1a;https://www.cnblogs.com/duhuo/p/5650876.html mysql查询记录如果有时间戳字段时&#xff0c;查看结果不方便&#xff0c;不能即时看到时间戳代表的含义&#xff0c;现提供mysql格式换时间函数&#xff0c;可以方便的看到格式化后的时间。 1. DATE_FORMA…

com.jcraft.jsch.JSchException: verify: false

背景 高并发下&#xff0c;SFTP上传偶现com.jcraft.jsch.JSchException: verify: false&#xff0c;网上有说升级版本什么的修复了这个bug&#xff0c;然而升级版本后事实证明这个bug还是会出现&#xff0c;大概上传几百次会出现一次。但是项目不可能允许文件丢失&#xff0c;…

java jsch jar_使用JSch从Java在远程计算机上执行命令

SSH是任何一种every-day工具Linux系统管理工作。这是访问网络上的远程计算机&#xff0c;传输数据和执行远程命令的一种简单而安全的方法。除了交互模式之外&#xff0c;还有许多工具可以使依赖于现有技术的远程任务实现自动化ssh服务器/客户端架构。对于这样一种工具&#xff…

java jsch执行脚本_JSch远程执行脚本

JSch远程执行脚本 2017-02-24 在自动化测试的时候&#xff0c;需要远程操控服务器做一些操作&#xff0c;比如切日、起服务器、执行某些脚本。如何实现&#xff1f; 我们可以利用JSch&#xff0c;远程执行脚本。JSch是Java Secure Channel的缩写&#xff0c;是一个SSH2功能的纯…

JSch基本使用

欢迎支持笔者新作&#xff1a;《深入理解Kafka:核心设计与实践原理》和《RabbitMQ实战指南》&#xff0c;同时欢迎关注笔者的微信公众号&#xff1a;朱小厮的博客。 欢迎跳转到本文的原文链接&#xff1a;https://honeypps.com/java/jsch-quick-start/ JSch 是SSH2的一个纯Ja…

基于 JSch 实现服务的自定义监控解决方案

一、基于 JSch 实现服务的自定义监控 JSch 是 SSH2 的一个纯 Java 实现。它允许你连接到一个 sshd 服务器&#xff0c;使用端口转发&#xff0c;X11转发&#xff0c;文件传输等等。你可以将它的功能集成到你自己的 程序中。 既然可以通过 SSH 连接到服务器&#xff0c;那就可…

java jsch_java - 使用JSch在远程计算机上执行命令

SSH是访问远程计算机,传输数据和执行远程命令的一种简单而安全的方法。除了基础的交互模式外,还有许多依赖于ssh Client/Server架构的工具可以实现自动化执行远程任务。我们可以找到ssh客户端的许多实现,但是如何从代码编程访问ssh提供的功能呢?本文介绍JAVA语言中使用ssh功…

使用JSCH连接Linux系统并执行命令

一、关于JSCH技术的简单描述 JSCH是SSH的一个纯Java实现。说直白点&#xff0c;就是一个远程连接你其他Linux或者Unix服务器的一个java代码包。其实就是我们使用jsch这个jar包来方便我们编写代码来连接自己linux系统的。 SSH&#xff1a;是目前较可靠&#xff0c;专为远程登录…

【实用技巧篇】JSch使用介绍,实用JSch实现文件传输

文章目录 JSch使用介绍1. jar包下载2. 引入依赖3. 代码实现4. 验证 JSch使用介绍 JSch 是SSH2的一个纯Java实现。它允许你连接到一个sshd 服务器&#xff0c;使用端口转发&#xff0c;X11转发&#xff0c;文件传输等等。你可以将它的功能集成到你自己的程序中。 1. jar包下载…