栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

工作是否超出了切片的习惯用法?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

工作是否超出了切片的习惯用法?

这不是在滥用切片,而只是使用切片是完美的:数组上的窗口。

我将从另一个相关的答案中获取此插图:

 array : [0 0 0 0 0 0 0 0 0 0 0 0] array :  <----   capacity   ---> slice :     [0 0 0 0] slice :      <---- capacity --->

当数组大于切片时,通常情况下,如果您知道自己不会超出基础数组,可以通过扩展一个切片来获取更大的切片(可以使用进行验证

cap()
)。

以您的错误代码为例,是的,这很危险,但是数组和切片是语言的最基本结构之一,如果要避免此类错误,必须在使用它们之前先了解它们。我个人认为,任何去编码器不应该只知道API,而且
什么 是切片


在您链接到的代码中,简短的分析表明,不可能像

list
创建时那样发生溢出。

list := make([]literalNode, len(freq)+1)

并在以后调整为

count
不能大于
len(freq)

list = list[0:count]

可能还希望再添加一些注释,但是由于包含的函数

list = list[0 :n+1]
是私有的,并且只能从一个地方调用,因此也可以认为注释详细程度和代码晦涩度之间的平衡听起来不错。隐藏太多的注释会隐藏代码,这很痛苦,需要阅读此代码的任何人都可以像我一样轻松地检查是否没有溢出。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/448066.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号