慕课网Go-2.数组、slice、map、list
数组
package mainimport "fmt"func main() {var course1 [3]stringcourse1[0] = "go"course1[1] = "grpc"course1[2] = "gin"for _, value := range course1 {fmt.Println(value)}course2 := [3]string{2: "grpc"}fmt.Println(course2)course3 := [...]string{"go", "grpc"}fmt.Println(course3)//多维数组var courseinfo [3][4]stringcourseinfo[0] = [4]string{"go1", "1h", "neo1", "基础1"}courseinfo[1] = [4]string{"go2", "2h", "neo2", "基础2"}courseinfo[2] = [4]string{"go3", "3h", "neo3", "基础3"}for i := 0; i < len(courseinfo); i++ {for j := 0; j < len(courseinfo[0]); j++ {fmt.Print(courseinfo[i][j] + " ")}fmt.Println()}
}
slice
package mainimport ("fmt""strconv"
)func changeSlice(data []string) {data[0] = "change!" //生效for i := 0; i < 5; i++ {data = append(data, strconv.Itoa(i)) //不生效,扩容导致地址改变}
}func main() {//初始化allCourse1 := [5]string{"go", "grpc", "gin", "mysql", "search"}fmt.Println(allCourse1)allCourse2 := [5]string{"go", "grpc", "gin", "mysql", "search"}courseLine := allCourse2[0:4] //左闭右开fmt.Println(courseLine)allCourse3 := make([]string, 3, 5) //len、capallCourse3[0] = "c"fmt.Println(allCourse3)var allCourse4 []stringallCourse4 = append(allCourse4, "go")allCourse4 = append(allCourse4, "grpc", "gin")fmt.Println(allCourse4)//访问,同pythonfmt.Println(allCourse1[:])fmt.Println(allCourse1[0:4])//拼接courseSlice1 := []string{"go", "grpc"}courseSlice2 := []string{"gin", "mysql"}courseSlice1 = append(courseSlice1, courseSlice2[:]...)fmt.Println(courseSlice1)//删除courseSlice3 := []string{"go", "grpc", "gin", "sql"}mySlice := append(courseSlice3[:2], courseSlice3[3:]...)fmt.Println(mySlice)//复制fmt.Println("复制")courseCopy := courseSlice1 //不独立courseSlice1[0] = "java1"fmt.Println(courseSlice1)fmt.Println(courseCopy)courseCopy2 := courseSlice1[:] //不独立courseSlice1[0] = "java2"fmt.Println(courseSlice1)fmt.Println(courseCopy2)courseCopy3 := make([]string, len(courseSlice1))copy(courseCopy3, courseSlice1) //独立courseSlice1[0] = "java3"fmt.Println(courseSlice1)fmt.Println(courseCopy3)//值传递原理data := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}s1 := data[1:6]s2 := data[2:7]//cap在512以内为2的幂,略大于等于len//扩容导致指向data副本,s1和s2不再指向同一个slices2 = append(s2, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1, 1, 1, 1, 1, 1, 1, 1, 1)fmt.Println(s1)fmt.Println(s2)s2[2] = 22fmt.Println(s1) //不再改变fmt.Println(s2)courseChange := []string{"go", "grpc", "gin", "sql"}changeSlice(courseChange)fmt.Println(courseChange)
}
map
package mainimport "fmt"func main() {var courseMap = map[string]string{"go": "go1","grpc": "grpc1","gin": "gin1",}//var courseMap1=make(map[string]string,3)courseMap["sql"] = "mysql"fmt.Println(courseMap["sql"])for key, value := range courseMap {fmt.Println(key, value)}d, ok := courseMap["java"]//若不存在,则值为""fmt.Println(d, ok) //"",falsedelete(courseMap, "gin")delete(courseMap, "cpp")//不存在也不会报错
}
list
package mainimport ("container/list""fmt"
)func main() {var myList list.ListmyList.PushBack("go")myList.PushBack("grpc")myList.PushBack("gin")fmt.Println(myList) //指针myList.PushFront("sql")myList.InsertBefore("last", myList.Back())for it := myList.Front(); it != nil; it = it.Next() {fmt.Println(it.Value)}for it := myList.Back(); it != nil; it = it.Prev() {fmt.Println(it.Value)}
}
相关文章:
慕课网Go-2.数组、slice、map、list
数组 package mainimport "fmt"func main() {var course1 [3]stringcourse1[0] "go"course1[1] "grpc"course1[2] "gin"for _, value : range course1 {fmt.Println(value)}course2 : [3]string{2: "grpc"}fmt.Println(…...
Django的Rest framework搭建自定义授权登录
系列文章目录 提示:阅读本章之前,请先阅读目录 文章目录 系列文章目录一、前言User模型User的viewsUser的serializersutils的md5加密自定义认证方法配置路由总路由分路由rest的配置 一、前言 之前的文章有写过通过jwt认证的文章,今天这一篇是…...
01 矩阵(力扣)多源广度优先搜索 JAVA
给定一个由 0 和 1 组成的矩阵 mat ,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 输入:mat [[0,0,0],[0,1,0],[0,0,0]] 输出:[[0,0,0],[0,1,0],[0,0,0]] 输入…...
怎么绘制简爱思维导图?用这个工具绘制很简单
怎么绘制简爱思维导图?绘制思维导图是一项非常有用的技能,有助于梳理思路、整理知识、更好地理解和记忆信息。因此,无论你是学生、教师、工程师、项目经理或者只是想要更好地组织自己的想法,学会绘制思维导图都是非常有益的。下面…...
EC200U-CN学习(三)
EC200U系列内置丰富的网络协议,集成多个工业标准接口,并支持多种驱动和软件功能(适用于Windows 7/8/8.1/10、Linux和Android等操作系统下的USB驱动),极大地拓展了其在M2M领域的应用范围,如POS、POC、ETC、共…...
【windows】连接共享打印机提示:0x0000011B
【问题现象】 添加共享打印机的时候, 提示错误:0x0000011B。 【解决方法】 按winr键,在运行输入regedit 然后在注册表中找到路径: 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print 打开后,在右侧…...
基于“RWEQ+”集成技术在土壤风蚀模拟与风蚀模数估算、变化归因分析中的实践应用及SCI论文撰写
【查看原文】基于“RWEQ”集成技术在土壤风蚀模拟与风蚀模数估算、变化归因分析中的实践应用及SCI论文撰写 土壤风蚀是一个全球性的环境问题。中国是世界上受土壤风蚀危害最严重的国家之一,土壤风蚀是中国干旱、半干旱及部分湿润地区土地荒漠化的首要过程。中国风…...
Flutter-基础Widget
Flutter页面-基础Widget 文章目录 Flutter页面-基础WidgetWidgetStateless WidgetStateful WidgetState生命周期 基础widget文本显示TextRichTextDefaultTextStyle 图片显示FlutterLogoIconImageIamge.assetImage.fileImage.networkImage.memory CircleAvatarFadeInImage 按钮R…...
【数据分析专栏之Python篇】二、Jupyer Notebook安装配置及基本使用
文章目录 前言一、Jupter Notebook是什么1.1 简介1.2 组成部分1.3 Jupyter Notebook的主要特点 二、为什么使用Jupyter Notebook?三、安装四、Jupyter Notebok配置4.1 基本配置4.2 配置开机自启与后台运行4.3 开启代码自动补全 五、两种键盘输入模式5.1 编辑模式5.2 命令模式5…...
ubuntu22.04 DNSSEC(加密DNS服务) configuration
/etx/systemd/resolved.conf是ubuntu下DNS解析服务配置文件,systemd为ubuntu下system and service配置目录 step 1——修改resolved.conf参数 管理员权限打开 /systemd/resolved.conf sudo nano /etc/systemd/resolved.conf修改如下: # This file i…...
Qt 第一讲
登录框设置 #include "zuoye.h" #include "ui_zuoye.h"Zuoye::Zuoye(QWidget *parent): QWidget(parent), ui(new Ui::Zuoye) {ui->setupUi(this);//界面this->resize(540,420); //设置尺寸this->setFixedSize(540,420);//固定尺寸this->setS…...
IDEA 使用 maven 搭建 spring mvc
1. 创建项目 1.1 创建成功之后配置 Spring MVC 1.2 勾选 Spring MVC 2.更改配置文件 2.1 更改web.xml配置 更改为 <servlet-mapping><servlet-name>dispatcher</servlet-name><url-pattern>/</url-pattern></servlet-mapping>2.2 dispat…...
Hi3536网络应用调优
目录 1. 为什么UDP接收或发送会丢包? 2. 使用 socket 接口时,如何正确工作在非阻塞模式下? 3. TOE 使能及使用注意事项 4. TOE 模式下使用 socket 接口时的注意事项 1. 为什么UDP接收或发送会丢包? 用户态应用程序在接收 UDP 数据时࿰…...
spring拦截器 与统一格式
目录 前言模拟拦截器拦截器的实现原理什么是动态代理? 什么是静态代理静态代理与动态代理的区别两种常用的动态代理方式基于接口的动态代理基于类的动态代理 JDK Proxy 与 CGlib的区别 其他 统⼀访问前缀添加统⼀异常处理统⼀数据返回格式 前言 之前博客讲述了 , 关于SpringA…...
leetcode 122. 买卖股票的最佳时机 II
2023.7.29 把整体利润拆分成每天的利润,将股票值想象成一个折线图,将所有上升的值相加即可。 代码: class Solution { public:int maxProfit(vector<int>& prices) {int ans 0;for(int i1; i<prices.size(); i){if(prices[i]-…...
代理模式:控制访问的设计模式
代理模式:控制访问的设计模式 什么是代理模式? 代理模式是一种常见的设计模式,它允许通过代理对象来控制对真实对象的访问。代理模式的主要目的是在不改变原始对象的情况下,提供额外的功能或控制访问。 为什么要使用代理模式&a…...
2020/7/30
Educational Codeforces Round 143 (Rated for Div. 2)\C_Tea_Tasting.cpp //题意:有n种茶,n个人,第i种茶有 a[i]的量,第i个人一次能喝 b[i], 第i个人从第i种茶开始往前喝,求每个人最多能喝多少茶。 //思路ÿ…...
图形编辑器开发:是否要像 Figma 一样上 wasm
大家好,我是前端西瓜哥。 wasm 拿来做 Web 端的图形编辑器貌似是不错的选择。 因为图形处理会有相当多无法利用到 WebGL GPU 加速的 CPU 密集的计算。比如对一条复杂贝塞尔曲线进行三角化,对多个图形进行复杂图形的布尔运算。 图形编辑器性能天花板 F…...
Linux学成之路(基础篇0(二十三)MySQL服务(主从MySQL服务和读写分离——补充)
目录 一、MySQL Replication概述 优点 异步复制(Asynchronous repication) 全同步复制(Fully synchronous replication) 半同步复制(Semisynchronous replication) 三、MySQL支持的复制 四、部署主从…...
spring启动流程 (6完结) springmvc启动流程
SpringMVC的启动入口在SpringServletContainerInitializer类,它是ServletContainerInitializer实现类(Servlet3.0新特性)。在实现方法中使用WebApplicationInitializer创建ApplicationContext、创建注册DispatcherServlet、初始化ApplicationContext等。 SpringMVC…...
Qwen3.5-9B惊艳案例:128K上下文下跨页PDF内容精准摘要
Qwen3.5-9B惊艳案例:128K上下文下跨页PDF内容精准摘要 1. 模型核心能力展示 Qwen3.5-9B作为一款90亿参数的开源大语言模型,在多个领域展现出令人印象深刻的能力。我们特别测试了其在处理长文档时的表现,结果令人惊喜。 1.1 长上下文处理能…...
别再手动调格式了!用C#和FastReport.Net搞定标签批量打印与90度旋转(附完整源码)
C#与FastReport.Net实战:打造高可用的标签批量打印与旋转解决方案 在仓储管理、物流配送和零售价签打印等场景中,开发人员经常需要处理各种规格的标签打印需求。传统的手动调整方式不仅效率低下,而且难以应对频繁变化的业务需求。本文将分享如…...
三步掌握开源资源处理工具:让RPG Maker MV资源处理效率提升90%
三步掌握开源资源处理工具:让RPG Maker MV资源处理效率提升90% 【免费下载链接】RPG-Maker-MV-Decrypter You can decrypt RPG-Maker-MV Resource Files with this project ~ If you dont wanna download it, you can use the Script on my HP: 项目地址: https:/…...
Kimi-VL-A3B-Thinking图文问答实操手册:从镜像拉取到Chainlit交互验证
Kimi-VL-A3B-Thinking图文问答实操手册:从镜像拉取到Chainlit交互验证 1. 引言:为什么你需要关注这个图文对话模型? 想象一下,你手头有一张复杂的图表,或者一份满是文字的截图,你想快速知道里面的关键信息…...
别再死记硬背了!用这5个真实运维脚本,搞定90%的Shell面试题
5个实战Shell脚本:从面试题到真实运维场景的蜕变 在技术面试中,Shell脚本能力往往是区分普通候选人和优秀候选人的关键指标。但死记硬背面试题答案的时代已经过去,现代企业更看重候选人解决实际问题的能力。本文将带你通过5个真实运维场景中的…...
WebLogic T3协议漏洞实战:5分钟搞定ConnectionFilterImpl配置(附常见问题排查)
WebLogic T3协议安全加固实战:ConnectionFilterImpl配置与深度防御指南 1. 漏洞背景与防御必要性 WebLogic作为企业级Java应用服务器,其专有的T3协议长期存在反序列化漏洞风险。攻击者通过构造恶意T3协议数据包,可在未授权情况下实现远程代码…...
【实用工具教程专栏】GitHub Actions自动化工作流入门(基础篇)
引言 在现代软件开发中,持续集成与持续部署(CI/CD)已成为提升开发效率、保证代码质量的核心实践。GitHub Actions作为GitHub官方推出的自动化工作流平台,以其原生集成、灵活配置、丰富生态等特点,成为开发者构建自动化…...
**实时内核中的任务调度机制:从理论到C++实现的深度探索**在嵌入式系统和高实时性应用中,**实时内核(Real-
实时内核中的任务调度机制:从理论到C实现的深度探索 在嵌入式系统和高实时性应用中,实时内核(Real-Time Kernel) 是整个系统稳定运行的核心。它不仅负责资源分配,还承担着任务调度、中断响应、同步机制等关键职责。本文…...
别只盯着Web日志!一次Windows服务器被黑,我是这样用系统日志和FTP记录挖出攻击链的
从Windows系统日志到FTP记录:一次完整的服务器入侵溯源实战 深夜的应急响应中心,刺眼的告警提示打破了宁静。大多数安全工程师的第一反应是打开Web访问日志开始排查——这几乎成了行业条件反射。但真实攻击往往发生在你最意想不到的角落。上周处理的一起…...
Windows系统下Neo4j社区版手动安装与配置指南(非Docker方案)
1. 环境准备:JDK安装与验证 在Windows系统下手动安装Neo4j社区版,第一步就是搞定Java环境。我见过太多新手卡在这一步,其实只要注意几个关键点就能轻松过关。Neo4j作为基于Java开发的图数据库,必须依赖JDK才能运行,但不…...
