go语言面试代码题目(不断更新......)

news/发布时间2024/5/18 16:32:16

下面代码输出什么:

func main() {slice := []int{0,1,2,3}m := make(map[int]*int)for key,val := range slice {m[key] = &val}for k,v := range m {fmt.Println(k,"->",*v)}
}

答案:

0 -> 3
1 -> 3
2 -> 3
3 -> 3

原因:在循环中,val 是一个在每次迭代中被重用的变量。因此,每个映射项实际上都引用相同的val的地址,这意味着它们最终都指向切片的最后一个元素。

package mainimport ("fmt")func main() {defer_call()}func defer_call() {defer func() { fmt.Println("打印前") }()defer func() { fmt.Println("打印中") }()defer func() { fmt.Println("打印后") }()panic("触发异常")
}
 打印后
打印中
打印前
panic: 触发异常

参考解析:defer 的执行顺序是后进先出。当出现 panic 语句的时候,会先按照 defer 的后进先出的顺序执行,最后才会执行panic

// 1.func main() {s := make([]int, 5)s = append(s, 1, 2, 3)fmt.Println(s)}// 2.func main() {s := make([]int,0)s = append(s,1,2,3,4)fmt.Println(s)
}
[0 0 0 0 0 1 2 3]
[1 2 3 4]
  • 下面这段代码有什么缺陷:
func funcMui(x,y int)(sum int,error){return x+y,nil}

参考答案:第二个返回值没有命名。

参考解析:

在函数有多个返回值时,只要有一个返回值有命名,其他的也必须命名。如果有多个返回值必须加上括号();如果只有一个返回值且命名也必须加上括号()。这里的第一个返回值有命名 sum,第二个没有命名,所以错误。

  • new和make
    new:
    • 用于创建并返回一个指向新分配类型的零值的指针。
    • 不会初始化内存,只是分配零值。
    • 主要用于分配内存给值类型(如结构体、整数、浮点数等)并返回指向该值类型的指针。
package mainimport "fmt"type Person struct {Name stringAge  int
}func main() {// 使用 new() 创建一个指向结构体 Person 的指针p := new(Person)fmt.Printf("%#v\n", p) // 输出:&main.Person{Name:"", Age:0}
}

make:

  • 仅用于创建并初始化切片、映射和通道。
  • 用于分配并初始化内部数据结构,返回的是非零值。
  • 主要用于分配引用类型的内存(如切片、映射和通道)。
package mainimport "fmt"func main() {// 使用 make() 创建一个切片,并初始化长度为 3s := make([]int, 3)fmt.Printf("%#v\n", s) // 输出:[]int{0, 0, 0}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.bcls.cn/vBKs/5387.shtml

如若内容造成侵权/违法违规/事实不符,请联系编程老四网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

Vue模板引用之ref特殊属性

1. 使用实例 <template><input ref"input" name"我是input的name" /><br /><ul><li v-for"arr in array" :key"arr" id"111" ref"itemRefs">{{arr}}</li></ul> </…

vue3 实现 el-pagination页面分页组件的封装以及调用

示例图 一、组件代码 <template><el-config-provider :locale"zhCn"><el-pagination background class"lj-paging" layout"prev, pager, next, jumper" :pager-count"5" :total"total":current-page"p…

SpringBoot3整合Swagger3,访问出现404错误问题(未解决)

秉承着能用就用新的的理念&#xff0c;在JDK、SpringBoot、SpringCloud版本的兼容性下&#xff0c;选择了Java17、SpringBoot3.0.2整合Swagger3。 代码编译一切正常&#xff0c;Swagger的Bean也能加载&#xff0c;到了最后访问前端页面swagger-ui的时候出现404。 根据网上资料…

【Crypto | CTF】BugKu 简单的RSA

天命&#xff1a;这题也不算简单了&#xff0c;要反编译&#xff0c;要灵活一点 首先收到pyc文件&#xff0c;拿去反编译出来&#xff0c;可以用在线反编译&#xff0c;也可以用工具反编译 在线&#xff1a;python反编译 - 在线工具 工具&#xff1a;https://download.csdn.n…

业务型 编辑器组件的封装(复制即可使用)

使用需要安装 wangeditor npm i --save wangeditor import React from react; import E from wangeditor; import ./index.lessclass EditorElem extends React.Component {constructor(props) {super(props);this.isChange false;this.state {}}componentDidMount() {con…

学习Python分支结构不走弯路

1.单分支语句 """ 语法&#xff1a; if 表达式:执行语句 执行流程&#xff1a;当表达式成立的时候&#xff0c;执行语句&#xff0c;否则不执行 """age int(input(请输入你的年龄&#xff1a;)) if age > 18:print(欢迎光临&#xff01;) …

IO进程线程day8作业

信号灯集二次函数封装 sem.c #include<myhead.h>union semun {int val; /* Value for SETVAL */struct semid_ds *buf; /* Buffer for IPC_STAT, IPC_SET */unsigned short *array; /* Array for GETALL, SETALL */struct seminfo *__buf; /* B…

【Spring Cloud】实现微服务调用的负载均衡

文章目录 什么是负载均衡自定义实现负载均衡启动shop-product微服务通过nacos查看微服务的启动情况自定义实现负载均衡 基于Ribbon实现负载均衡添加注解修改服务调用的方法Ribbon支持的负载均衡策略通过修改配置来调整 Ribbon 的负载均衡策略通过注入Bean来调整 Ribbon 的负载均…

10:部署Dashboard|部署Prometheus|HPA集群

部署Dashboard&#xff5c;部署Prometheus&#xff5c;HPA集群 Dashboard部署Dashboard上传镜像到私有仓库安装服务发布服务创建管理用户查看登录的Token信息 Prometheus步骤一&#xff1a;导入所有后续需要的镜像到私有镜像仓库&#xff08;在master主机操作操作&#xff09;步…

2271036-47-4,Pomalidomide-PEG4-Azide,具有良好的生物相容性和稳定性

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;&#xff1a;2271036-47-4&#xff0c;Pomalidomide-PEG4-Azide&#xff0c;Pomalidomide PEG4 N3&#xff0c;泊马度胺-NH-四聚乙二醇-叠氮&#xff0c;泊马度胺氨基-PEG4-叠氮 一、基本信息 【产品简介】&#xf…

[深度学习]yolov9+bytetrack+pyqt5实现目标追踪

【简介】 目标追踪简介 目标追踪是计算机视觉领域中的一个热门研究方向&#xff0c;它涉及到从视频序列中实时地、准确地跟踪目标对象的位置和运动轨迹。随着深度学习技术的快速发展&#xff0c;基于深度学习的目标追踪方法逐渐展现出强大的性能。其中&#xff0c;YOLOv9&…

批量删除传参那些事

接口参数&#xff1a; public Object batchDeleteUsers(RequestBody List userIds) 工具提示传参&#xff1a; { “userIds”: [] } 错误&#xff01;&#xff01;&#xff01;讨逆猴子 报错&#xff1a;JSON parse error: Cannot deserialize value of type java.util.ArrayL…

微服务篇之限流

一、为什么要限流 1. 并发的确大&#xff08;突发流量&#xff09;。 2. 防止用户恶意刷接口。 二、限流的实现方式 1. Tomcat限流 可以设置最大连接数&#xff0c;但是每一个微服务都有一个tomcat&#xff0c;实现起来非常麻烦。 2. Nginx限流 &#xff08;1&#xff09;控…

设计模式之命令模式

设计模式专栏&#xff1a; http://t.csdnimg.cn/4Mt4u 相关系列文章 面向对象设计之接口隔离原则 设计模式之命令模式 设计模式之组合模式 设计模式之策略模式 设计模式之责任链模式 设计模式之桥接模式 设计模式之装饰器模式 设计模式之工厂模式 设计模式之空对象模式 设计模式…

golang学习2,golang开发配置国内镜像

go env -w GO111MODULEon go env -w GOPROXYhttps://goproxy.cn,direct

2024水科技大会暨技术装备成果展览会——城镇雨污分流及污水处理提质增效论坛(五)

为积极应对“十四五”期间我国生态环境治理面临的挑战&#xff0c;加快生态环境科技创新&#xff0c;构建绿色技术创新体系&#xff0c;全面落实科学技术部、生态环境部等部委编制的《“十四五”生态环境领域科技创新专项规划》&#xff0c;积极落实四川省人民政府与上海大学《…

Qt C++春晚刘谦魔术约瑟夫环问题的模拟程序

什么是约瑟夫环问题&#xff1f; 约瑟夫问题是个有名的问题&#xff1a;N个人围成一圈&#xff0c;从第一个开始报数&#xff0c;第M个将被杀掉&#xff0c;最后剩下一个&#xff0c;其余人都将被杀掉。例如N6&#xff0c;M5&#xff0c;被杀掉的顺序是&#xff1a;5&#xff…

Leetcoder Day24| 回溯part04:组合+分割

93.复原IP地址 给定一个只包含数字的字符串&#xff0c;复原它并返回所有可能的 IP 地址格式。 有效的 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xff0c;整数之间用 . 分隔。 例如&#xff1a;"0.…

etcdctl查看k8s资源信息

背景 k8s中的网络配置和对象状态信息都会保存到etcd中&#xff0c;所以我们可以通过etcdctl查看保存在数据库中的信息 常用操作 查看etcd的各个节点的状态 [rootmaster3 ~]# etcdctl --endpoints"10.197.115.27:2379,10.197.115.25:2379,10.197.115.26:2379" --ca…

搭建XSS 测试平台

XSS 测试平台是测试XSS漏洞获取cookie并接收Web 页面的平台&#xff0c;XSS 可以做 JS能做的所有事&#xff0c;包括但不限于窃取cookie、后台增删改文章、钓鱼、利用XSS漏洞进 行传播、修改网页代码、网站重定向、获取用户信息(如浏览器信息、IP 地址)等。这 里使用的是基于x…
推荐文章