In Sprachen wie Python und Ruby können Sie die Sprache fragen, welche indexbezogenen Methoden ihre Stringklasse unterstützt (die Namen der Methoden enthalten das Wort "index")
“”.methods.sort.grep /index/i
Und in java
List results = new ArrayList();
Method[] methods = String.class.getMethods();
for (int i = 0; i < methods.length; i++) {
Method m = methods[i];
if (m.getName().toLowerCase().indexOf(“index”) != -1) {
results.add(m.getName());
}
}
String[] names = (String[]) results.toArray();
Arrays.sort(names);
return names;
Wie würden Sie dasselbe in Scala tun?
1 Stimmen
Ich glaube, ich habe es gefunden "wow".getClass.getMethods.toList.map(m => m.getName).sort((a, b) => (a compareTo b) < 0 ).filter( s => s.matches("index(.*)"))
6 Stimmen
Nur so aus Neugier: Was werden Sie mit diesen Methodennamen machen, wenn Sie sie einmal haben? Wenn es darum geht, dass Sie wissen, was Sie als nächstes in einer interaktiven Umgebung eingeben können, bietet die Scala REPL eine gute Tabulatorvervollständigung. Probieren Sie es aus.
0 Stimmen
Ausgezeichneter Tipp, Randall! Aus irgendeinem Grund habe ich noch nie daran gedacht, es zu versuchen...
0 Stimmen
Die Tabulatorvervollständigung findet keine Methoden aus Traits. Zum Beispiel, "
1.m<tab>
" deutet auf nichts hin, aber "1.max(2)
" funktioniert gut.