如何在Squeak smalltalk中搜索类中的字符串?包内怎么样?

jos*_*lvo 6 smalltalk squeak

我搜索,搜索.

我去了IRC

希望这个问题不是愚蠢的.如果是的话,谷歌搜索的正确字符串仍然会受到赞赏

Sea*_*ris 1

下面的示例显示了 DosFileDirectory 中包含字符串“\”的所有方法。

aString := '\\'.
class := DosFileDirectory.
methodsContainingString := class methodDictionary values select: [:method |
    method hasLiteralSuchThat: [:lit |
        (lit isString and: [lit isSymbol not]) and:
            [lit = aString]]].
messageList := methodsContainingString collect: [ :e | MethodReference new setStandardClass: class methodSymbol: e selector ].

SystemNavigation new
    browseMessageList: messageList
    name: 'methods containing string'.
Run Code Online (Sandbox Code Playgroud)

要搜索整个包,请将搜索部分包装在:

package := PackageOrganizer default packageNamed: packageName ifAbsent: [ self error: 'package doesn't exist' ].
package classesAndMetaClasses do: [ :class | ... ]
Run Code Online (Sandbox Code Playgroud)