go-lang:缺乏包含方法设计的理由

时间:2014-12-18 16:45:18

标签: go

在浏览包含方法时,我遇到了以下Q& A

contains-method-for-a-slice

在本Q& A中,一次又一次地说,该方法实现起来非常简单。我不明白的是,如果它易于实施,并看到DRY是一种流行的软件原理&& amp;并且大多数现代语言都实现了这种方法,在排除这种简单方法背后可能涉及哪种设计推理?

2 个答案:

答案 0 :(得分:4)

实施的微不足道取决于实施的范围。当您知道如何比较每个值时,实现是微不足道的。应用程序代码通常知道如何比较该应用程序中使用的类型。但是在任意类型的一般情况下实现并非易事,这就是语言和标准库的情况。

答案 1 :(得分:4)

确定切片是否包含某个对象是O( n )操作,其中 n 是切片的长度。如果语言提供了执行此操作的功能,则不会更改。如果您的代码依赖于频繁检查切片是否包含某个值,则应重新评估您选择的数据结构;在这种情况下,地图通常更好。为什么标准库包含的函数会鼓励您为自己的任务使用错误的数据结构?