find 和 search 的区别?

2018-01-24 22:09:14 +08:00
 innoink
比如,想要表达如下的意思,应该用哪个单词:

想在目录中找一个文件,应该用 find 还是 search ?

想在文本中找一个单词,应该用 find 还是 search ?

想用搜索引擎找一个页面,应该用 find 还是 search ?

假如你要写一个用于从某些东西里面找出符合条件的一部分东西的函数,这个函数名在什么情况下应该用 find,什么情况下用 search ?

这些情况下分别应该翻译成查找还是搜索?有何区别?
7145 次点击
所在节点    问与答
26 条回复
innoink
2018-01-25 02:55:07 +08:00
@yangqi 既然是一般情况,我想你应该能说出几个
“ search 可以理解为搜索,目标不是很明确,或者有很多,一般会返回所有结果。find 可以理解为寻找,目标比较明确,一般找到第一个就返回结果”
的案例吧?反正我现在是没找到哪个语言、哪个库是这么设计的
yangqi
2018-01-25 03:08:39 +08:00
@innoink #21 我说的一般情况并不是指那个语言或者库。我说的是软件开发里面自己定义的函数,楼主问的也是这个。根据英文的含义来理解比较自然,当然软件开发关键还是要看文档,所以函数怎么命名只有好坏,没有对错。
h4lbhg1G
2018-01-25 04:19:42 +08:00
@innoink 好了你有明确的例子,我就好解(qiang)释(xing)了。

我先说下结论,find 就是简单的线性表查找。比如字符串查找,文本编辑器 Ctrl+F 查找(这里就不要较真正则表达式了)。如果用到了数据结构树或者图或者认为算法很高级,一般就说是 search 了。也就是高大上一点的叫做 search,简单平庸的叫做 find。

大部分语言的字符串的 find 应该都是普通的线性查找,并且返回下标。

用 STL 来解释,binary search 因为属于比较高级,英文叫做 find,中文认为太简单叫做查找。而深度优先,相对比较复杂就都叫做搜索。search_n 比较高级。find_end 比较简单。


Excel 也可以解释,find 区分大小写,从程序角度比较简单,search 不区分大小写,相对比较高级。
KeepPro
2018-01-25 09:07:14 +08:00
感觉 find 强调 找到 这个动作,而 search 偏向于研究探索。
Mutoo
2018-01-25 09:48:36 +08:00
https://stackoverflow.com/questions/480811/semantic-difference-between-find-and-search
这个讨论值得参考。

TLDR: find 是 search 的完成态。find 会得到一个明确的结果(有明确的目标),而 search 可能得到 0 个或多个结果(设定某种标准)。例如 find a php job / search jobs with php
innoink
2018-01-25 10:50:24 +08:00
@Mutoo 卧槽我怎么没搜到这个

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/425698

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX