J'écris habituellement du matériel technique sur mon blog personnel, mais je le posterai pour la première fois sur Qiita selon les spécifications du calendrier de l'Avent! Ce que je veux dire dans cet article, c'est qu'il est pratique de rechercher ou de remplacer par des expressions régulières. (En fait, kotlin est maladroit et pas très pertinent.)
Il s'agit d'ajouter un caractère (partie ◯) qui est fixé au préfixe (début) de manière hongroise selon la convention de dénomination des variables.
int strHoge;
static textHoge;
Dans le guide de style android-java, le préfixe de champ privé est "m" et le préfixe de champ statique est "s", qui est habituellement utilisé.
guide de style android-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;
}
}
Don't use m-prefix and s-prefix Depuis l'époque d'Android-java, je pense que cela n'a pas beaucoup de sens. Cela dit, j'utilise personnellement beaucoup la notation hongroise. Il y a plusieurs raisons pour lesquelles le préfixe m et le préfixe s ne sont pas inclus, mais lorsque vous utilisez le ButterKnife standard dans la bibliothèque de liaison, celui à lier est privé, vous voulez donc ajouter m, mais en raison des spécifications de liaison de ButterKnife, il devient public et incohérent Faire. Veuillez consulter d'autres sites pour d'autres raisons. La notation hongroise peut être trouvée de différentes manières en recherchant des groupes négatifs / affirmatifs (style vim vs emacs), donc je pense que c'est intéressant de la regarder. Bref, il vaut mieux l'utiliser correctement en fonction de l'heure et du cas.
Il n'y a aucune mention de l'ajout du préfixe m ou du préfixe s. Dans le cas d'Android-java, je l'ai juste utilisé habituellement. Ainsi, lorsque je crée une nouvelle application Android avec kotlin à partir de maintenant, je n'ajoute pas de préfixe en premier lieu. (Peut-être que certaines personnes font une erreur)
convert java to kotlin Pour ceux qui ont préfixé avec java, le préfixe m et le préfixe s resteront si vous utilisez la fonction de conversion automatique en kotlin dans l'environnement Android Studio.
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){
}
C'est dommage.
Remplacez par une expression régulière dans laquelle tout le monde est bon. Vous pouvez également utiliser des expressions régulières dans Android Studio. La description des expressions régulières est presque la même dans toutes les langues. Personnellement, je l'utilise souvent avec du rubis.
Référence de la syntaxe des expressions régulières Android Studio (IntelliJ IDEA mais identique) https://www.jetbrains.com/help/idea/2016.2/regular-expression-syntax-reference.html#d1540635e834
Remplacez le préfixe m en bloc. (Pour le préfixe s, remplacez (m) par (s))
Caractère de recherche:([\s|\t]+)(m)([A-Z])([a-z]+)
Caractère de remplacement:$1\L$3$4
Comme le montre l'image, Match case (sensible à la casse) et Regex (utiliser des expressions régulières) sont obligatoires et doivent être cochés. Puisque seul le fichier kotlin de base est pris en charge, il est recommandé de mettre * .kt dans le masque de fichier.
Je ne pense pas que vous ayez besoin d'une explication détaillée, donc je n'expliquerai que la fonction de capture. Si vous utilisez () comme caractère de recherche, vous pouvez capturer (réutiliser) ce caractère. Le premier () est de 1 $ et ressemble à ... Il y a pas mal de gens qui connaissent l'expression régulière mais ne connaissent pas la fonction de capture, donc si vous ne la connaissez pas, c'est pratique de l'essayer.
Si id tel que mId → id chevauche d'autres variables locales ou des mots réservés, cela ne fonctionnera pas bien, donc même si vous les remplacez tous en même temps, vous devez effectuer un test de régression après la conversion. Il est plus sûr de vérifier la cible de remplacement individuellement. Il se compile, mais peut provoquer des problèmes ou des erreurs lors de l'exécution.
Il peut être utilisé non seulement lors de la conversion en kotlin, mais également lorsque vous souhaitez supprimer le préfixe de java, veuillez donc l'essayer une fois. Expression régulière rarement utilisée ou non utilisée dans Android Studio. Dans certains cas, l'efficacité du développement augmentera, veuillez donc l'utiliser de manière positive!
Tout le code du projet actuellement attribué a été converti de java en kotlin. Au début, je ne savais pas si j'avais un objectif, alors j'ai continué à répondre et, en fait, j'ai réussi à répondre en 12 jours ouvrables environ. (Il y a une histoire d'échec une fois dans la version et de retour à java. Trauma) Cependant, la fonction de conversion automatique seule ne peut pas le faire du tout, et plus le projet est volumineux (plus la quantité de code est importante), plus les erreurs se produisent. Il y a eu environ 8000 erreurs, mais les erreurs de type non nul uniques à kotlin sont également les mêmes, mais il y a eu diverses corrections de code et c'était difficile. Cependant, je suis heureux que les spécifications fonctionnelles de kotlin soient très faciles à utiliser et aient été modifiées. Bonne vie de kotlin!