Was mich als Anfänger beim Schreiben von Ruby beeindruckt hat

Beim Erstellen eines Portfolios in Ruby Beeindruckt beim Hin- und Hergehen mit den Grundlagen von Ruby Ich werde zusammenfassen, wie man Ruby und die Regeln schreibt.

Aktualisieren Sie von Zeit zu Zeit für sich.

Schreibe Variablen im Schlangenfall
special_price = 200
Bei Verwendung der Ausdruckserweiterung doppelte Anführungszeichen
puts "#{special_price}"
Bei Verwendung von einfachen (doppelten) Anführungszeichen in einer Zeichenfolge
puts "\"Hello\""
#=> "Hello"
Die Nummer _ wird ignoriert
1_000_000_000
#=> 1000000000
Das Teilen zwischen ganzen Zahlen ist eine Lösung und eine ganze Zahl
1 / 2 #=>0
1.0 / 2 #=>0.5
++ ist als Syntax ungültig
n += 1 #=>2
n *= 3 #=>6
n /= 2 #=>3
n **= 2 #=>9
Angemessene Anzahl
0.1 * 3.0 == 0.3 #=>false
0.1 * 3.0 <= 0.3 #=>false
3/10 statt ein paar mit Rational Klasse
0.1r * 3.0r #=>(3/10)
&&Ist||Mehr Priorität

Die if-Anweisung gibt den zuletzt ausgewerteten Ausdruck zurück
greeting =
    if
        
    elsif
        
    else
        
    end
Wenn ja, können Sie Ihren Code einzeilig eingeben
if (wird bearbeitet) then (Rückgabewert)
%Notation
%q!! #=> ' '
%Q!! #=> " "
%!! #=> " "
Hier dokumentieren
a = <<TEXT
String
TEXT
Zeichenfolge formatieren
'%0.3f' % 1.2 #=>"1.200"
Exponentieller Ausdruck
2e-3 #=> 0.002
#2×10^-3
Bedingter Operator (ternärer Operator)
message = n > 10 ? 'true' : 'false'
GC (Garbage Collection)

Sammeln Sie Objekte, die nicht mehr verwendet werden Speicher automatisch freigeben


Alias-Methode

Methoden derselben Implementierung mit unterschiedlichen Namen


dvimod gibt Quotienten und Reste als Array zurück
14.divmod(3) #=> [4,2]
Lassen Sie Blockargumente weg, wenn sie nicht benötigt werden
numbers.each do
    sum += 1
end
Sie können Ruby-Code in den Block schreiben
numbers = [1,2,3,4]
sum = 0
    
numbers.each do |number|
    sum_value = n.even? ? n * 10 : n #Bedingter Operator
    sum += sum_value #sum_Wert ist nur innerhalb des Blocks gültig
end

sum #=> 64

Übrigens, wenn ein Profi es schreibt, ist es so einfach ...! !! !! @ Scivola, ich werde studieren.

numbers = [1,2,3,4]
sum = numbers.sum{ |n| n.even? ? n * 10 : n }

Referenz: Array # sum (Ruby 2.7.0 Referenzhandbuch)

Bewerten Sie die Elemente des Arrays und machen Sie den Rückgabewert zu einem neuen Array
numbers = [1,2,3,4]
new_numbers = numbers.map { |n| n * 10 }

new_numbers #=> [10,20,30,40]
Methode zur Durchführung einer Faltungsoperation
numbers = [1,2,3,4]
sum = numbers.inject(0) { |result, n| result + n }
#1. Ergebnis Ergebnis=>0, n=>1, 0+1=1
#2. Ergebnis Ergebnis=>1, n=>2, 1+2=3

sum #=> 10
Prägnanter mit der &: -Methode
[1,2,3,4].select { |n| n.odd? } #=> [1,3]
[1,2,3,4].select(&:odd?) #=> [1,3]
#1.Wenn es nur ein Blockargument gibt
#2.Wenn die Methode keine Argumente hat
#3.Möglich, wenn die Methode ein Satz für das Blockargument ist
#&:Betreiber ist nutzlos
Der Bereich kann auch für Zeichenfolgen verwendet werden
('a'...'e').to_a #=>["a","b","c","d"] ...Endet nicht
Geben Sie die Anzahl der Ziffern an
'0'.rjust(5) 		#=> "    0"
'0'.rjust(5, '0')	#=> "00000"
Holen Sie sich das Ende eines Arrays
a = [1,2,3]
a[-1] #=> 3
Ersetzen von Elementen in einem Array
a = [1,2,3,4,5]
a[1,3] = 100
#=> [1,100,5]Blöd...
Satz von Summen- und Differenzprodukten von Sequenzen
a = [1,2,3]
b = [3,4,5]

a | b #=> [1,2,3,4,5]
a - b #=> [1,2]
a & b #=> [3]
Empfangen Sie alle verbleibenden Elemente als Array mit Mehrfachzuweisung
e, f = 100, 200, 300
e #=> 100
f #=> 200

e, *f = 100, 200, 300
e #=> 100
f #=> [200, 300]
Synthetisieren Sie die Sequenz
a = [1,2]
b = [3,4]

a.push(b) #=> [1,2,[3,4]]
a.push(*b) #=> [1,2,3,4]
Erstellen Sie präzise ein Array von Zeichenfolgen in% -Notation
['apple', 'melon', 'orange']
#=> ['apple', 'melon', 'orange']

%W!apple melon orange!

%W(apple melon orange)

%W(
	apple
	melon
	orange
)
Anfangswert des Arrays
a = Array.new(5, 'nil')
#=>[nil, nil, nil, nil, nil]
a = Array.new(5){'default'}
#=>["default", "default", "default", "default", "default"]
#=>Alle Elemente sind unterschiedliche Objekte
Verbinden Sie das Array mit join
names = ['Sato', 'Tanaka', 'Strand']
honorific = names.map{ |name| "#{name}Herr."}
honorific.join('Wann') #=>"佐藤さんWann田中さんWann浜辺さん"
Entkomme dem globalen Raum mit fangen und werfen
last_names = ['Sato', 'Tanaka', 'Strand']
first_names = ['Taro', 'Jiro', 'Minami']
catch :myfavorite do
    last_names.shuffle.each do |last_name|
        first_names.shuffle.each do |first_name|
            puts "#{last_name} #{first_name}Herr."
            if last_name == "Strand" && first_name == "Minami"
				throw :myfavorite #Symbol
            end
        end
    end
end

Recommended Posts

Was mich als Anfänger beim Schreiben von Ruby beeindruckt hat
Was ist ein Ruby-Modul?
Multiplikation innerhalb eines Ruby-Arrays
Implementieren Sie den gRPC-Client in Ruby
Was ist ein Ausschnitt in der Programmierung?
[Hinweis] [Anfänger] So schreiben Sie Ruby Memo (Refactoring) 1
Was ist ein zweidimensionales Ruby-Array?
Was ist eine Klasse in der Java-Sprache (3 /?)
Ich habe ein Kalenderproblem mit Ruby versucht
Schriftliche Unterschiede in Ruby, PHP, Java, JS
[Technischer Hinweis] Was ist "include" in Ruby?
Was ist eine Klasse in der Java-Sprache (1 /?)
Was ist eine Klasse in der Java-Sprache (2 /?)
Was Sie wissen müssen, bevor Sie einen Test in einer iOS-App schreiben
Escape-Verarbeitung beim Erstellen einer URL in Ruby
AtCoder Anfängerwettbewerb 169 A, B, C mit Rubin
Ich habe eine Ruby-Erweiterungsbibliothek in C erstellt
Was ein Anfänger getan hat, um die Objektorientierung zu verstehen
(Ruby on Rails6) Erstellen von Daten in einer Tabelle
[Rubiy] Was ist, wenn Sie jede Aussage in jede Aussage einfügen? ??