Java-Ingenieure im Vergleich zum Erlernen der grundlegenden Grammatik von Ruby jetzt Teil 1 (Basic, Variablen)

Einführung

Ich denke, wenn Sie eine Sprache mit einer anderen Idee lernen, ist es schneller, sie durch Unterschiede zu lernen. Bevor Sie also Rails starten, sollten Sie die grundlegende Grammatik wiederholen. Es ist eine einfache Idee, sich daran zu erinnern, indem Sie so etwas wie einen Spickzettel erstellen.

Ich denke, es gibt verschiedene Engpässe, aber bitte haben Sie Verständnis dafür, dass ich nur das tue, was ich vorerst für notwendig halte. Da ich oft schreibe, werde ich den Artikel teilen.

Tsukkomi ist willkommen.

Umgebung

paiza.io In einem solchen Fall ist die Ausführung einfacher

Die Version, als dies gemacht wurde, ist wie folgt. Sie können die Version in Hilfe überprüfen.

Ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux] Java openjdk version "12" 2019-03-19

Kommentar

Wie schreibe ich einen Kommentar

//Für eine Zeile

/*
Für mehrere Zeilen
*/
#Für eine Zeile

=begin
Für mehrere Zeilen
=end

__END__
Alles nach dieser Zeile wird ein Kommentar sein

Verarbeitungsbegrenzer

Es geht um das Trennzeichen, wenn Sie es ausführen.

String str = "World"; //Die Verarbeitung wird nur durch ein Semikolon getrennt
tmp1 = 1 #Grundsätzlich werden Zeilenumbrüche getrennt
tmp2 = 2;print("#{tmp1 + tmp2}") #Semikolon gilt auch als Trennzeichen

Standardausgabe

Hello World Zuerst von Hello World. Java hat viele Typen, da Sie Klassen erstellen müssen. Da Ruby plötzlich schreiben kann, ist der Schreibaufwand gering.

import java.util.*;

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

#Es scheint mehrere Namen zu geben, daher beziehen Sie sich bitte auf Folgendes
# https://qiita.com/naoge/items/f5d84581d3a301a9c22f
print("Hello World")

Variable Erweiterung

Sie werden oft Variablen sehen. In Java wird es erweitert, indem ein Formatbezeichner mit der printf-Methode deklariert und eine Variable festgelegt wird. Die variable Erweiterung kann in Ruby verwendet werden, also werde ich es tun.

import java.util.*;

public class Main {
    public static void main(String[] args) {
        String str = "World";
        // System.out.println("Hello" + str)Aber es ist möglich.
        System.out.printf("Hello %s", str);
    }
}

str = "World";
print("Hello #{str}") #{Formel(Variable)}でVariable展開可能

Variablendefinition

Wir haben oben einige Variablen verwendet, aber hier ist eine Beschreibung davon. Da Ruby-Variablen etwas kompliziert sind, scheint es schwierig zu sein, sich hier mit dem Umfang zu befassen, daher habe ich ihn nicht gesehen. Bitte beachten Sie, dass aufgrund dieses Einflusses nicht alle Variablen in Ruby abgedeckt werden können.

Lokale Variablen

Da Java eine statisch typisierte Sprache ist, müssen Sie angeben, welcher Typ die Variable ist. Da Ruby eine dynamisch typisierte Sprache ist, müssen Sie keinen Typ angeben. Als Ruby-Regel sind lokale Variablen Bezeichner, die mit einem Kleinbuchstaben oder einem Unterstrich beginnen. Es scheint, dass der Unterstrich für Variablen gilt, die nicht verwendet werden. Seien Sie also vorsichtig.

String tmp1 = "1";
tmp1 = "1"

Mit Ruby können Variablen unterschiedlichen Typs in deklarierte Variablen aufgenommen werden.

tmp1 = 1

puts("#{tmp1}") #Puts ist eine Standardausgabe mit Zeilenumbrüchen

tmp1 = "2"

puts("#{tmp1}")

Konstante

Java deklariert mit final, um ein Umschreiben zu verhindern. Im Allgemeinen ist es in Ordnung, statisch hinzuzufügen, also fügen Sie auch statisch hinzu. Da Ruby Variablen definiert, die mit dem englischen Großbuchstaben als Konstanten beginnen, wird dies nur anhand des Variablennamens beurteilt.

public static final String ONE = "1";
ONE = "1"

__END__
Wenn Sie diese Variable neu schreiben, wird die folgende Warnung angezeigt und das Programm funktioniert nicht.

warning: already initialized constant ONE

Im Gegensatz zu Java können Ruby-Konstanten auch auf der obersten Ebene definiert werden. Und es ist möglich, eine Konstante mit demselben Namen in der Klasse zu haben. In diesem Fall verringert sich die Priorität, wenn Sie vom Verwendungsort nach außen gehen.

ONE = "1"

class A
   ONE = "2"
   
   def print
       p ONE
   end
end

a = A.new
a.print #Dies wird als 2 angezeigt

p ONE #Dies wird als 1 angezeigt

Globale Variablen

Java hat keine globalen Variablen im engeren Sinne. Da alles zu Ojbect gehören muss, können Sie eine Variable erstellen, die wie ein Ganzes aussieht, aber keine globale Variable ist.

Ruby kann als globale Variable deklariert werden, indem "$" vorangestellt wird. Sie können auch auf nicht deklarierte globale Variablen verweisen, diese sind jedoch "Null".

$str = "a"

Instanzvariable

Ab hier zeigt sich die Komplexität der Ruby-Variablen. Ich verstehe, dass Instanzvariablen Mitgliedsvariablen in Java ähnlich sind. Anerkennung, dass es in Bezug auf den Umfang genauso behandelt wird wie geschützt!

Ruby deklariert Variablen mit "@" am Anfang. Im Gegensatz zu Java wird es nicht als Mitgliedsvariable deklariert und der Referenzbereich ist breit (wenn es sich um eine Klasseninstanzvariable handelt). Wenn Sie also die Klasse komplizieren, wissen Sie nicht, wo etwas passiert, daher bin ich vorsichtig. Ich denke, es ist der richtige Weg, die Klasse einfach zu halten, anstatt sie nicht zu benutzen, also sei dort vorsichtig.

Im Fall von Ruby unterscheiden sich auch die Referenzen der Klassenmethode (self) und der Instanzmethode (ohne self). Da sich das Selbst wie eine statische Methode anfühlt, versuche ich das zu verstehen.

public class A {
    protected String str;
}
class A
  def save(target)
    @str = target;
  end
end

Klassenvariable

Eine Variable, die zu einer Klasse gehört. Es scheint in Java als statisch behandelt zu werden und wirkt sich auf andere Klasseninstanzen aus.

Es ist sicherer, dies nicht zu verwenden. Es scheint nur die Ursache des Chaos zu sein.

public class A {
    protected static String str;
}
class A
  def save(target)
    @@str = target;
  end
end

Klasseninstanzvariable

Wenn Sie eine Instanzvariable als zu einer Klasse gehörend deklarieren, wird sie zu einer Klasseninstanzvariablen und kann nur über die Klassenmethode (self) referenziert werden. Der Unterschied zu Instanzvariablen scheint darin zu bestehen, dass sie nur von ihren Klassenmethoden abhängen. Wenn Sie versuchen, es von anderen zu sehen, wird es als Instanzvariable behandelt.

Es scheint, dass dies mit Java nicht möglich ist, daher müssen Sie sich daran erinnern, dass Sie dies auch tun können.

# 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

Recommended Posts

Java-Ingenieure im Vergleich zum Erlernen der grundlegenden Grammatik von Ruby jetzt Teil 1 (Basic, Variablen)
Java-Ingenieure vergleichen nun, um die grundlegende Grammatik von Ruby Teil 2 (Klassen, Methoden) zu lernen.
Ich habe die grundlegende Grammatik von Ruby kurz zusammengefasst
Stellen Sie sicher, dass Sie das Java compareTo-Ergebnis mit 0 vergleichen
Java mit Ramen lernen [Teil 1]
Grundlegende Verwendung von Java Optionaler Teil 1
[Grundkenntnisse in Java] Umfang der Variablen
[Ruby] Zeigt den Inhalt von Variablen an
Herstellen einer Verbindung zu einer Datenbank mit Java (Teil 1) Möglicherweise die grundlegende Methode
Vergleichen Sie Elemente eines Arrays (Java)
[Java] Ich habe die grundlegende Grammatik persönlich zusammengefasst.
Ausgabe des Buches "Einführung in Java"
Ich habe versucht, die Grammatik von R und Java zu übersetzen [Von Zeit zu Zeit aktualisiert]
[Ruby on Rails] So machen Sie das Linkziel zu einem Teil der angegebenen ID
[Förderung des Ruby-Verständnisses (1)] Wenn Sie von Java zu Ruby wechseln, verstehen Sie zuerst den Unterschied.
Ich habe versucht, die Infrastrukturtechnologie der Ingenieure heutzutage mit dem Kochen zu vergleichen.
So finden Sie die Ursache des Ruby-Fehlers
[Ruby] Grundkenntnisse über Klasseninstanzvariablen usw.
Die Geschichte der Einführung der Ajax-Kommunikation in Ruby
[Java] Der verwirrende Teil von String und StringBuilder
[Ruby] Code zur Anzeige des Tages
Java Willkommen im Sumpf der zweidimensionalen Arrays
Grundlegende Java-Grammatik
Grundlegende Java-Grammatik
Grundlegende Java-Grammatik
Grundlegende Java-Grammatik
Der Teil, dem ich in "Einführung in Ajax in Java-Webanwendungen" von NetBeans verfallen war
[Java] So erhalten Sie die URL der Übergangsquelle
[Java] Grundlegende Zusammenfassung von Java, die nicht von Progate abgedeckt wird ~ Teil 1 ~
Wie schreibe ich Scala aus der Perspektive von Java
[Java] So erhalten Sie den Maximalwert von HashMap
Java Review ① (Entwicklungsschritte, grundlegende Grammatik, Variablen, Datentypen)
Einführung in Java für Anfänger Grundkenntnisse der Java-Sprache ①
Java: Verwenden Sie Stream, um den Inhalt einer Sammlung zu sortieren
~ Ich habe jetzt versucht, funktionale Programmierung mit Java zu lernen ~
Was Java-Ingenieure benötigen, um sich auf die Java 11-Version vorzubereiten
Ersetzen Sie nur einen Teil des URL-Hosts durch Java
Von Java zu Ruby !!
Die Geschichte der Erhöhung von Spring Boot von 1.5 auf 2.1 Serie Teil2
Überprüfen Sie die Grundkenntnisse von Rubin, die oft vergessen werden
Ich habe versucht, die Grundlagen von Kotlin und Java zusammenzufassen
Kommen Sie zu den Abkürzungen aus den fünf Beispielen für kursive Java-Listen
20190803_Java & k8s on Azure Die Geschichte vom Festivalbesuch
Befehl zum Überprüfen der Anzahl und des Status von Java-Threads
Vergleich des Schreibens von Callback-Funktionen (Java, JavaScript, Ruby)
Ich möchte die Java 8 DateTime-API (jetzt) langsam verwenden.
[Java] Um die Typinformationen der Typparameter zur Laufzeit zu kennen
[Java] Grundlegende Zusammenfassung von Java, die nicht von Progate abgedeckt wird ~ Teil 2 ・ Liste ~
[Ruby] So rufen Sie den Inhalt des Doppel-Hash ab
So leiten Sie den letzten Tag des Monats in Java ab
Road to Java Engineer Part2 Was für eine Sprache ist Java?
Die Geschichte, Java mithilfe der BitBucket-Pipeline nach Heroku zu bringen