他们如何在日食或其他想法中执行代码的自动完成?它背后的基本原理是什么?
答案 0 :(得分:3)
您知道如何将源代码显式附加到您在Eclipse中导入的非标准库吗?当您这样做时,文本搜索索引就构建在该源上,这样IDE就知道为您提供自动完成功能。粗略地说,我认为它是关联数组,其中key是您键入的方法的前缀,value是该方法的描述。
现在,对于此功能而言,重要的是有效地实现时间和内存消耗。为某些方法的每个可能前缀存储相同的条目是非常低效的。 (甚至可以存储每个前缀!)
可能适用于此问题的一个有趣的结构是Trie,它本身已针对前缀搜索进行了优化,同时保持了可接受的内存使用率。
看一看这个简单的例子: http://www.sarathlakshman.com/2011/03/03/implementing-autocomplete-with-trie-data-structure/
答案 1 :(得分:1)
除了Tries,用于已经键入方法/ var名称的开头的情况,我认为当你尝试调用方法时,它也使用某种类型的比较/分析。 IDE建议您将本地/全局变量作为参数传递给该方法调用。