gpt4 book ai didi

smalltalk - 寻找推断选择器分类的方法

转载 作者:行者123 更新时间:2023-12-02 22:03:51 25 4
gpt4 key购买 nike

我正在开发一个 SelectorClassifierAssistant 对象,该对象建议方法的可能分类。

到目前为止,我已经实现了以下策略:

  1. 同一选择器的局部分类(即在同一层次结构中上下)
  2. 同一选择器在其他类别中的其他分类(按频率排序)
  3. 访问器检测(该方法是 setter 还是 getter?ifTrue: [^#accessing])
  4. 已知选择器前缀(#is...、#print...、#as...等)

并且,如果上述所有方法均失败(即建议为空):

  • 方法中发送的其他消息的类别(仅限方法的类和父类(super class)中理解的消息)
  • 还有其他我可以使用的已知启发法吗?

    ---编辑---

  • 选择器仅从同一类发送 -> #private (@Carlos E. Ferro)

  • 已知选择器(#= #hash 等 -> #comparing 等)

  • 空类别(如果类别为空,则可能是用户刚刚添加它来对下一个选择器进行分类。)

  • 最佳答案

    我认为在您的最后一个选项中,与其查看在分类方法中发送的消息的类别,不如查找该消息的发件人的类别。

    这是我经常使用的启发式方法。

    我发现的原因是,从这个方法调用的方法很可能是通用服务,但是这个方法的发送者将其视为一种服务,并定义了使用该消息的“感兴趣区域”。

    ---- 编辑 ----

    另一个相关的启发式,非常简单是这样的:如果所有发件人都是本地的(此类或子类),那么“私有(private)”是对其进行分类的良好候选者。没有发送者的方法通常是私有(private)服务。

    关于smalltalk - 寻找推断选择器分类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27951686/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com