Je pense que si vous apprenez une langue avec une idée différente, elle sera plus rapide à apprendre par différence, donc avant de commencer Rails, refaisons la grammaire de base. C'est une idée facile à retenir en créant quelque chose comme une feuille de triche.
Je pense qu'il y a plusieurs pénuries, mais comprenez bien que je ne fais que ce que je pense être nécessaire pour le moment. Puisque j'écris souvent, je diviserai l'article.
Tsukkomi est le bienvenu.
paiza.io C'est plus facile à exécuter dans un tel cas
La version à laquelle cela a été fait est la suivante. Vous pouvez vérifier la version depuis Aide.
Ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux] Java openjdk version "12" 2019-03-19
Comment rédiger un commentaire
//Pour une ligne
/*
Pour plusieurs lignes
*/
#Pour une ligne
=begin
Pour plusieurs lignes
=end
__END__
Tout après cette ligne sera un commentaire
Il s'agit du délimiteur lors de l'exécution.
String str = "World"; //Le traitement est séparé uniquement par un point-virgule
tmp1 = 1 #Fondamentalement, les sauts de ligne sont séparés
tmp2 = 2;print("#{tmp1 + tmp2}") #Le point-virgule est également valide comme délimiteur
Hello World D'abord de Hello World. Java a beaucoup de types car vous devez créer des classes. Puisque Ruby peut écrire le traitement soudainement, la quantité de frappe est faible.
import java.util.*;
public class Main {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
#Il semble y avoir plusieurs noms, veuillez donc vous référer à ce qui suit
# https://qiita.com/naoge/items/f5d84581d3a301a9c22f
print("Hello World")
Vous verrez souvent des variables. En Java, il est développé en déclarant un spécificateur de format avec la méthode printf et en définissant une variable. L'expansion variable peut être utilisée dans Ruby, donc je vais le faire.
import java.util.*;
public class Main {
public static void main(String[] args) {
String str = "World";
// System.out.println("Hello" + str)Mais c'est possible.
System.out.printf("Hello %s", str);
}
}
str = "World";
print("Hello #{str}") #{formule(variable)}でvariable展開可能
Nous avons utilisé quelques variables ci-dessus, mais en voici une description. Étant donné que les variables Ruby sont un peu compliquées, il semble difficile de traiter la portée ici, donc je ne l'ai pas vu. Veuillez noter qu'en raison de cette influence, toutes les variables de Ruby ne peuvent pas être couvertes.
Puisque Java est un langage de type statique, vous devez déclarer le type de la variable. Puisque Ruby est un langage à typage dynamique, vous n'avez pas besoin de spécifier de type. En tant que règle Ruby, les variables locales sont des identificateurs qui commencent par une lettre inférieure ou un trait de soulignement. Il semble que le trait de soulignement concerne les variables qui ne sont pas utilisées, alors faites attention à cela.
String tmp1 = "1";
tmp1 = "1"
Ruby permet d'inclure des variables de différents types dans des variables une fois déclarées.
tmp1 = 1
puts("#{tmp1}") #met est une sortie standard avec des sauts de ligne
tmp1 = "2"
puts("#{tmp1}")
Java déclare avec final pour empêcher la réécriture. En règle générale, il est normal d'ajouter de la statique, alors ajoutez également de la statique. Puisque Ruby définit des variables commençant par une majuscule anglaise comme constantes, elle n'est jugée que par le nom de la variable.
public static final String ONE = "1";
ONE = "1"
__END__
Si vous réécrivez cette variable, l'avertissement suivant se produira et le programme ne fonctionnera pas.
warning: already initialized constant ONE
Contrairement à Java, les constantes Ruby peuvent également être définies au niveau supérieur. Et il est possible d'avoir une constante avec le même nom dans la classe. Dans ce cas, la priorité diminuera à mesure que vous passerez du lieu d'utilisation à l'extérieur.
ONE = "1"
class A
ONE = "2"
def print
p ONE
end
end
a = A.new
a.print #Ceci est affiché comme 2
p ONE #Ceci est affiché comme 1
Java n'a pas de variables globales au sens strict. Puisque tout doit appartenir à Ojbect, vous pouvez créer une variable qui ressemble à un tout, mais ce n'est pas une variable globale.
Ruby peut être déclaré comme une variable globale en le préfixant avec $
.
Vous pouvez également faire référence à des variables globales non déclarées, mais elles seront «nil».
$str = "a"
À partir de là, la complexité des variables Ruby apparaît. Je comprends que les variables d'instance sont similaires aux variables membres en Java. Reconnaissance qu'il est traité de la même manière que protégé en termes de portée!
Ruby déclare les variables avec «@» au début. Contrairement à Java, il n'est pas déclaré en tant que variable membre et la plage de référence est large (s'il s'agit d'une variable d'instance de classe), donc si vous compliquez la classe, vous ne saurez pas où quelque chose se passe, donc je me sens prudent. Je pense que c'est la bonne façon de garder la classe simple au lieu de ne pas l'utiliser, alors soyez prudent.
De plus, dans le cas de Ruby, la référence de la méthode de classe (self) et de la méthode d'instance (sans self) est différente. Puisque le moi ressemble à une méthode statique, j'essaie de comprendre cela.
public class A {
protected String str;
}
class A
def save(target)
@str = target;
end
end
Une variable qui appartient à une classe. Il semble être traité comme statique en Java et affecte d'autres instances de classe.
Il est plus sûr de ne pas l'utiliser. Cela semble seulement être la cause du chaos.
public class A {
protected static String str;
}
class A
def save(target)
@@str = target;
end
end
Si vous déclarez qu'une variable d'instance appartient à une classe, elle devient une variable d'instance de classe et ne peut être référencée qu'à partir de la méthode de classe (self). La différence avec les variables d'instance semble être qu'elles ne portent que sur leurs méthodes de classe. Si vous essayez de le voir des autres, il sera traité comme une variable d'instance.
Il semble que ce ne soit pas possible avec Java, il semble donc que vous devez vous rappeler que vous pouvez également le faire.
# Your code here!
class A
def save(user_name)
@str = user_name
end
def self.save(user_name)
@str = user_name
end
def self.print
p @str
end
def print
p @str
end
end
a = A.new
a.save("aaa")
a.print
A.save("bbb")
A.print