Go语言面试题--进阶语法(30)

文章目录

    • 1.下面的代码能否正确输出?
    • 2.下面代码输出什么?
    • 3.下面的代码有什么问题?
    • 4.下面代码有什么不规范的地方吗?

1.下面的代码能否正确输出?

func main() {
    var fn1 = func() {}
    var fn2 = func() {}
    if fn1 != fn2 {
       println("fn1 not equal fn2")
    }
}

参考答案及解析:编译错误

invalid operation: fn1 != fn2 (func can only be compared to nil)

函数只能与 nil 比较。

2.下面代码输出什么?

type T struct {
    n int
}
func main() {
    m := make(map[int]T)
    m[0].n = 1
    fmt.Println(m[0].n)
}

A. 1

B. compilation error

参考答案及解析:B。编译错误:

cannot assign to struct field m[0].n in map

map[key]struct 中 struct 是不可寻址的,所以无法直接赋值。

修复代码:

type T struct {
    n int
}
func main() {
    m := make(map[int]T)
    t := T{1}
    m[0] = t
    fmt.Println(m[0].n)
}

3.下面的代码有什么问题?

type X struct {}
func (x *X) test()  {
   println(x)
}
func main() {
    var a *X
    a.test()
    X{}.test()
}

参考答案及解析:X{} 是不可寻址的,不能直接调用方法。知识点:在方法中,指针类型的接收者必须是合法指针(包括 nil),或能获取实例地址。

修复代码:

func main() {
    var a *X
    a.test()    // 相当于 test(nil)
    var x = X{}
    x.test()
}

4.下面代码有什么不规范的地方吗?

func main() {
    x := map[string]string{"one":"a","two":"","three":"c"}
    if v := x["two"]; v == "" { 
        fmt.Println("no entry")
    }
}

参考答案及解析:检查 map 是否含有某一元素,直接判断元素的值并不是一种合适的方式。最可靠的操作是使用访问 map 时返回的第二个值。

修复代码如下:

func main() {  
    x := map[string]string{"one":"a","two":"","three":"c"}
    if _,ok := x["two"]; !ok {
        fmt.Println("no entry")
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

全网抓包天花板教程,CSDN讲的最详细的Fiddler抓包教程。2小时包你学会

目录 前言 一、安装 Fiddler 二、打开 Fiddler 并设置代理 三、抓取 HTTP/HTTPS 流量 四、流量分析和调试 五、应用场景 六、注意事项 七、实际案例 八、拓展阅读 九、结论 前言 Fiddler 是一款功能强大的网络调试工具,可以用于捕获和分析 HTTP 和 HTTPS …

QT QPainter 绘制基本图形元件简介

1.基本图形元件 QPainter 提供了很多绘制基本图形的功能,包括点、直线、椭圆、矩形、曲线等,由这些基本的图形可以构成复杂的图形。QPainter 中提供的绘制基本图元的函数如下表所示。每个函数基本上都有多种参数形式,这里只列出函数名&#x…

微信小程序php+vue 校园租房指南房屋租赁系统

本着诚信的原则,平台必须要掌握出租方必要的真实可信的信息,这样就可以防止欺诈事件的发生,事后也可以联系找到出租方。并且租金等各方面规范标准化,在这易租房诚信可信的平台让承租方与出租方充分有效对接,既方便了承…

ConcurrentHashMap是如何保证线程安全的

ConcurrentHashMap是如何保证线程安全的 定义和问题解决JDK 1.7实现原理JDK 1.8性能优化总结 定义和问题解决 ConcurrentHashMap相当于HashMap的多线程版本。 它的功能本质上和HashMap没有什么区别,因为HashMap在并发操作的时候会出现各种问题,比如&am…

YOLOv1代码复现1:辅助功能实现

YOLOv1代码复现1:辅助功能实现 前言 ​ 在经历了Faster-RCNN代码解读的摧残后,下决心要搞点简单的,于是便有了本系列的博客。如果你苦于没有博客详细告诉你如何自己去实现YOLOv1,那么可以看看本系列的博客,也许可以帮助…

大屏开发需要知道哪些知识

大屏 大屏是什么呢?再我前几年刚接触这个词得时候很新颖,全名叫态势感知大屏,大屏得特点是炫酷、好看,给用户满满得科技感。 听一位前辈说当年再招标会上,再都用exel、word做界面图表文档得时候,有一家公司…

打包后dist包中app.**.js文件暴露大量接口信息,webpack-obfuscator对打包后的js代码混淆加密

问题描述 打包后dist包中app.**.js文件暴露大量接口信息,而webpack-obfuscator可以对打包后的js代码混淆加密 版本信息 webpack: 4.x.x node: 14.18.0 webpack4环境下使用webpack-obfuscator不能使用最新版本 我的下载版本是: npm install --save-de…

玩转ChatGPT:论文翻译润色

一、写在前面 首先还是让小Chat推销下自己: 嘿!你是否在写论文的过程中感到头疼,无从下手?你是否在担心自己的语言表达不够专业、不够流畅,影响了论文的质量?不要担心,ChatGPT的润色服务可以帮…

Redis 持久化八股文

目录 Redis的持久化机制 持久化方式对比 RDB RDB 持久化 RDB 的优缺点 优点 缺点 RDB 快照时运行修改数据吗 RDB 快照时修改数据过程 写时复制技术 RDB 的执行频率 增量快照 AOF 如何开启AOF AOF 为什么要采用后写日志呢? 后写日志的弊端 AOF 的优…

pdf转成word | ppt | jpg图片,免费一键转换教程

我不允许真的还有人不知道如何免费将pdf转成 ppt、word 或者 jpg图片! 职场小伙伴是不是会经常遇到pdf怎么转成word,pdf怎么转成word,pdf怎么jpg图片等问题?别再为pdf转化格式难、而且还要付费而发愁了!这份pdf免费一…

Python OpenCV3 计算机视觉秘籍:6~9

原文:OpenCV 3 Computer Vision with Python Cookbook 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 计算机视觉 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 当别人说你没有底线的时候&…

IDAPython入门基础语法

文章目录 参考文章IDAPython简介常用函数获取界面地址的函数数值获取函数数值判断函数patch操作函数去除花指令实例 参考文章 IDAPython入门教程 基于IDA7.5_Python3 第一讲 简介与地址获取 IDAPython简介 IDAPython拥有强大的功能,在使用IDA分析程序时非常有用,可以简化许多…

QT 插件通信接口调用 CTK开发(四)

CTK 为支持生物医学图像计算的公共开发包,其全称为 Common Toolkit。为医学成像提供一组统一的基本功能;促进代码和数据的交互及结合;避免重复开发;在工具包(医学成像)范围内不断扩展到新任务,而不会增加现有任务的负担;整合并适应成功的解决方案。 本专栏文章较为全面…

信息安全复习三:古典密码之设计好的密码算法

一.章节梗概 讨论以下算法,理解怎么设计好的密码算法的关键问题 1.Caesar cipher 2.单字母表密码 3.Playfairmima 4.维吉尼亚密码 5.自动生成密码 二.Caesar cipher 2.1 穷举攻击 穷举攻击定义:尝试所有密钥直到有一个合法密钥能够把密文还原成明文&…

Docker私有仓库Harbor搭建及使用

文章目录 一、Harbor简介二、Harbor仓库部署三、Harbor仓库使用 一、Harbor简介 官网地址:https://github.com/goharbor/harbor Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等…

如何在Web上实现激光点云数据在线浏览和展示?

无人机激光雷达测量是一项综合性较强的应用系统,具有数据精度高、层次细节丰富、全天候作业等优势,能够精确测量三维现实世界,为各个行业提供了丰富有效的数据信息。但无人机激光雷达测量产生的点云数据需要占用大量的存储空间,甚…

SpringSecurity之权限模块设计

目录 前言 实现思路 代码结构 使用说明 前言 前面我们了解了关于微服务权限设计方案以及J W T的相关介绍,今天我们来聊一下,如何避免自己重复的写相同的代码,一次代码实现,即可完美复制到任何项目中实现权限相关的功能。 实现…

RK3568平台开发系列讲解(驱动基础篇)SMP(Symmetrical Multi-Processing)

🚀返回专栏总目录 文章目录 一、linux SMP 和 AMP二、linux SMP的启动流程三、CPU的描述:cpumask四、CPU之间的关系沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍 SMP(Symmetrical Multi-Processing)。 一、linux SMP 和 AMP 目前支持多核处理器的实时操…

CxImage学习使用1:环境搭建

目录 前言 一、CxImage相关介绍 二、编译源码 三、将CxImage使用到自己的工程中 前言 CxImage是一个可以用于MFC 的C图像处理类库类,它可以打开,保存,显示,转换各种常见格式的图像文件,比如BMP, JPEG, GIF, PNG, TI…

300元的蓝牙耳机什么牌子好?300内无线蓝牙耳机推荐

感受过无线的自在舒适后,越来越多的小伙伴爱上了蓝牙耳机白天出街更潇洒,目前市面上蓝牙耳机琳琅满目可选择性较多价格从几十、几百元到数千元不等然而蓝牙耳机的安全性、舒适性如何?连接稳吗?下面整理了几款300元价位的耳机分享给…
最新文章