35 Stimmen

Wie erhält man eine Methodenliste in Scala

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...

1voto

pdbartlett Punkte 1491

Wenn Sie den Java-Code direkt verwenden, kommen Sie am weitesten, denn Scala-Klassen sind immer noch JVM-Klassen. Sie könnten den Code nach Scala ziemlich leicht portieren, obwohl, für Spaß/Praxis/einfache Verwendung in REPL.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X