Normalerweise schreibe ich technisches Material in meinen persönlichen Blog, aber ich werde es zum ersten Mal gemäß den Spezifikationen des Adventskalenders auf Qiita veröffentlichen! Was ich in diesem Artikel sagen möchte, ist, dass es bequem ist, nach regulären Ausdrücken zu suchen oder diese zu ersetzen. (Eigentlich ist Kotlin umständlich und nicht sehr relevant.)
Es wird ein festes Zeichen (◯ Teil) auf ungarische Weise zum Präfix (Anfang) hinzugefügt, gemäß der Namenskonvention für Variablen.
int strHoge;
static textHoge;
Im Android-Java-Styleguide lautet das private Feldpräfix "m" und das statische Feldpräfix "s", was üblicherweise verwendet wird.
android-java style guide
public class Book {
private int mId;
private String mTitle;
private int mPrice;
public Book(final int id,final String title, final int price){
mId = id;
mTitle = title;
mPrice = price;
}
}
Don't use m-prefix and s-prefix Seit der Zeit von Android-Java habe ich gedacht, dass es nicht viel Sinn macht. Trotzdem verwende ich persönlich viel ungarische Notation. Es gibt verschiedene Gründe, warum m-Präfix und s-Präfix nicht enthalten sind. Wenn Sie jedoch das Standard-ButterKnife in der Bindungsbibliothek verwenden, ist das zu bindende privat, sodass Sie m hinzufügen möchten. Aufgrund der Bindungsspezifikationen von ButterKnife wird es jedoch öffentlich und inkonsistent Machen. Bitte verweisen Sie aus anderen Gründen auf andere Websites. Die ungarische Notation kann auf verschiedene Arten gefunden werden, indem nach negativen / positiven Gruppen gesucht wird (vim vs emacs style), daher finde ich es interessant, sie nur anzusehen. Kurz gesagt, es ist besser, es je nach Zeit und Fall richtig zu verwenden.
Das Hinzufügen von m-Präfix oder s-Präfix wird nicht erwähnt. Im Fall von Android-Java habe ich es nur üblich verwendet. Wenn ich also von nun an eine neue Android-Anwendung mit Kotlin erstelle, füge ich überhaupt kein Präfix hinzu. (Vielleicht machen einige Leute einen Fehler)
convert java to kotlin Für diejenigen, denen Java vorangestellt wurde, bleiben das M-Präfix und das S-Präfix erhalten, wenn Sie die Funktion verwenden, um in der Android Studio-Umgebung automatisch in Kotlin zu konvertieren.
before java
public class Book {
private int mId;
private String mTitle;
private int mPrice;
public Book(final int id,final String title, final int price){
mId = id;
mTitle = title;
mPrice = price;
}
}
after convert java to kotlin
class Book(private val mId: Int, private val mTitle: String, private val mPrice: Int){
}
Es ist Schande.
Ersetzen Sie durch einen regulären Ausdruck, in dem jeder gut ist. Sie können auch reguläre Ausdrücke in Android Studio verwenden. Die Beschreibung regulärer Ausdrücke ist in allen Sprachen nahezu gleich. Persönlich benutze ich es oft mit Rubin.
Syntaxreferenz für reguläre Ausdrücke in Android Studio (IntelliJ IDEA, aber gleich) https://www.jetbrains.com/help/idea/2016.2/regular-expression-syntax-reference.html#d1540635e834
Ersetzen Sie das m-Präfix in großen Mengen. (Ändern Sie für das S-Präfix (m) in (s))
Suchzeichen:([\s|\t]+)(m)([A-Z])([a-z]+)
Ersatzcharakter:$1\L$3$4
Wie in der Abbildung gezeigt, sind Match case (Groß- und Kleinschreibung beachten) und Regex (reguläre Ausdrücke verwenden) erforderlich und sollten überprüft werden. Es wird nur die grundlegende Kotlin-Datei benötigt, daher wird empfohlen, * .kt in die Dateimaske einzufügen.
Ich glaube nicht, dass Sie eine detaillierte Erklärung benötigen, daher werde ich nur die Erfassungsfunktion erläutern. Wenn Sie () als Suchzeichen verwenden, können Sie dieses Zeichen erfassen (wiederverwenden). Das erste () ist $ 1 und sieht aus wie ... Es gibt einige Leute, die den regulären Ausdruck kennen, aber die Erfassungsfunktion nicht kennen. Wenn Sie ihn also nicht kennen, können Sie ihn bequem ausprobieren.
Wenn sich IDs wie mId → id mit anderen lokalen Variablen oder reservierten Wörtern überschneiden, funktioniert dies nicht. Selbst wenn Sie alle auf einmal ersetzen, sollten Sie nach der Konvertierung einen Regressionstest durchführen. Es ist sicherer, das Ersatzziel einzeln zu überprüfen. Es wird kompiliert, kann jedoch zur Laufzeit Probleme oder Fehler verursachen.
Sie können es nicht nur verwenden, wenn Sie in Kotlin konvertieren, sondern auch, wenn Sie das Präfix aus Java löschen möchten. Versuchen Sie es also einmal. Ein regulärer Ausdruck, der in Android Studio selten oder nicht verwendet wird. In einigen Fällen steigt die Entwicklungseffizienz. Verwenden Sie sie daher bitte positiv!
Der gesamte Code des aktuell zugewiesenen Projekts wurde von Java nach Kotlin konvertiert. Zuerst wusste ich nicht, ob ich ein Ziel hatte, also antwortete ich weiter, und tatsächlich gelang es mir, innerhalb von 12 Werktagen zu antworten. (Es gibt eine Vorgeschichte, in der die Veröffentlichung einmal fehlgeschlagen ist und zu Java zurückgekehrt ist. Trauma) Die automatische Konvertierungsfunktion allein kann dies jedoch überhaupt nicht. Je größer das Projekt (je größer die Codemenge), desto mehr Fehler treten auf. Es waren ungefähr 8000 Fehler, aber es war auch schwierig für Fehler vom Nicht-Null-Typ, die nur für Kotlin gelten, aber es gab verschiedene Codekorrekturen. Ich bin jedoch froh, dass die Funktionsspezifikationen von kotlin sehr einfach zu verwenden sind und geändert wurden. Hab ein gutes Kotlin-Leben!
Recommended Posts