Liste und Beispiele grundlegender Ruby-Befehle.
Der Unterschied zwischen ihnen ist das Vorhandensein oder Fehlen von Zeilenumbrüchen und das Vorhandensein oder Fehlen einer Typendarstellung.
Methode | puts | p | |
---|---|---|---|
Verwenden | Für die Produktion | Zum Debuggen | Reste von Python? |
Neue Zeile | Ja | Ja | Keiner |
Typendarstellung | Keiner | Ja | Keiner |
Unterschied zwischen Puts und Print (Vorhandensein oder Nichtvorhandensein von Zeilenumbrüchen)
puts "Hallo"
puts 123
#Hallo
#123
print "Hallo"
print 123
#Hallo 123
Unterschied zwischen Puts und p (Vorhandensein oder Fehlen einer Typendarstellung)
puts "Hallo"
puts 123
#Hallo
#123
p "Hallo"
p 123
#"Hallo"
#123
TAX_RATE = 1.0
puts TAX_RATE
#Anweisung überschreiben
TAX_RATE = 1.5
#warning: already initialized constant TAX_RATE
#warning: previous definition of TAX_RATE was here
p 1.1.class
#Float
p 1.1.methods
#[:-@, :**, :<=>, :<=, :>=, :==, :===, :eql?, :%, :inspect, :*, :+, :-, :/, :<, :>, :to_int, :coerce, :to_s, :divmod, :to_i, :to_f, :to_r, :fdiv, :modulo, :abs, :magnitude, :zero?, :finite?, :infinite?, :floor, :ceil, :round, :truncate, :positive?, :negative?, :numerator, :denominator, :rationalize, :arg,Unten weggelassen...
p "abc".methods
#[:encode, :encode!, :unpack, :unpack1, :include?, :%, :*, :+, :count, :partition, :to_c, :sum, :next, :casecmp, :casecmp?, :insert, :bytesize, :match, :match?, :succ!, :<=>, :next!, :upto,Unten weggelassen...
p 8.0 / 3
p 8/3.0
p 8/3
#2.6666666666666665
#2.6666666666666665
#2
p 8.0/7
p (8.0/7).round
p (8.0/7).ceil
p (8.0/7).floor
#1.1428571428571428
#1 round
#2 ceil
#1 floor
calc = 8/3.0
puts format("%.2f", calc)
puts sprintf("%.2f", calc)
#2.67
#2.67
Object.round (Anzahl der Stellen)
Object.ceil (Anzahl der Stellen)
Object .floor (Anzahl der Stellen)
puts calc.round(2)
puts calc.round(3)
#2.67
#2.667
puts calc.ceil(2)
puts calc.ceil(3)
#2.67
#2.667
puts calc.floor(2)
puts calc.floor(3)
#2.66
#2.666
setzt" # {Formeln und Variablen} "
┗ Doppelte Anführungszeichen
┗ Ausgabe so wie sie ist, wenn sie einzeln ist
puts "tax #{1000 * 0.10}"
#tax 100.0
puts 'tax #{1000 * 0.10}'
#tax #{1000 * 0.10}
puts "Hello" + "World"
#HelloWorld
puts "Hello★" * 5
#Hello★Hello★Hello★Hello★Hello★
str = "hello world"
p str.length
#11
str = "123"
p str
p str.to_i
#"123"
#123
colors = ["red", "blue", "white"]
p colors[0]
p colors[3] #nil
p colors
#"red"
#nil
#["red", "blue", "white"]
colors = ["red", "blue", "white"]
p colors.push("green")
#["red", "blue", "white", "green"]
p colors << ("black")
#["red", "blue", "white", "green", "black"]
colors = ["red", "blue", "white", "green", "black"]
p colors.length
p colors.size
p colors.count
#5
#5
#5
colors = ["red", "blue", "white", "green", "black"]
p colors.sort
p colors.sort.reverse
#["black", "blue", "green", "red", "white"]
#["white", "red", "green", "blue", "black"]
numbers = [5, 8, 1, 4, 9]
p numbers.sort
p numbers.sort.reverse
#[1, 4, 5, 8, 9]
#[9, 8, 5, 4, 1]
** Erstellen **
Variable = {Schlüssel: Wert, Schlüssel: Wert ,,,}
Anruf
Variable [: Schlüsselname]
scores = {tanaka:100, sato:80, ito:50}
p scores
p scores[:sato]
#{:tanaka=>100, :sato=>80, :ito=>50}
#80
Trotzdem unten
score1 = {"tanaka" => 100, "sato"=>80, "ito"=>50 }
score2 = {:tanaka =>100, :sato=>80, :ito=>50}
score3 = {tanaka:100, sato:80, ito:50}
p score1
p score2
p score3
#{:tanaka=>100, :sato=>80, :ito=>50}
#{:tanaka=>100, :sato=>80, :ito=>50}
#{:tanaka=>100, :sato=>80, :ito=>50}
scores = {tanaka:100, sato:80, ito:50}
scores[:suzuki] = 40
p scores
#{:tanaka=>100, :sato=>80, :ito=>50, :suzuki=>40}
scores = {tanaka:100, sato:80, ito:50, suzuki:40}
scores.delete(:suzuki)
p scores
#{:tanaka=>100, :sato=>80, :ito=>50}
if
Verzweigen Sie den Prozess mit ** bedingtem Ausdruck **.
if, elsif, else, end
python
stock = 5 #Lager
if i >= 10
puts 'Lagerbestand: ◎'
elsif i > 3
puts 'Lagerbestand: △'
elsif i == 1
puts 'Bestand: Letzte 1'
else
puts 'Lagerbestand: ×'
end
#Lagerbestand: △
Fallsyntaxstruktur
#case Variable, die Sie auswerten möchten
#wenn Nummer
#wird bearbeitet
#wenn Bereich (Startwert)..Schlusskurs)
#wird bearbeitet
#wenn Bereich (Startwert)..Schlusskurs)
#wird bearbeitet
# else
#wird bearbeitet
# end
python
age = 6
case age
when 0..5
puts 800
when 6..11
puts 1800
else
puts 2500
end
#1800
・ Startpreis .. Schlusskurs
┗ Bereich vom Startpreis bis zum Schlusskurs
Array
x = ["A", 1, "b", 3]
for i in x
puts i
end
#A
#1
#b
#3
Fortlaufende Nummern
for i in 0..3
puts i
end
#0
#1
#2
#3
python
arrays = ["A", 1, "b", 3]
arrays.each do |array|
puts array
end
#A
#1
#b
#3
python
i = 0
while i < 3
puts i
i += 1
# i++Kann nicht verwendet werden
end
#0
#1
#2
python
3.times do |i|
puts "#{i}Dies ist der zweite Prozess"
end
#Dies ist der 0. Prozess
#Dies ist der erste Prozess
#Dies ist der zweite Prozess
i = 0
loop{
puts i
i += 1
if i >=3
break
end
}
#0
#1
#2
#3
python
3.times do |i|
if i == 1
next
end
puts "#{i}Dies ist der zweite Prozess"
end
#Dies ist der 0. Prozess
#Dies ist der zweite Prozess
▼ Erstellung
def method name () verarbeitungsende
┗ () ist nicht erforderlich, wenn kein Argument vorhanden ist.
▼ Anrufen
Methodenname ()
python
def hello(name)
puts "Hello #{name}Herr."
end
hello("Yuta")
#Hallo Yuta
Mehrere Argumente
def ttl_price(price, n)
return (price * n * 1.10).floor #Rückgabe ist optional
end
puts ttl_price(500, 3)
#1650
class class name end
--Klassennamen werden großgeschrieben. --Initialisierungsmethode: Eine Methode, die beim Erstellen einer Instanz automatisch aufgerufen wird. --Eigenschaften werden durch @ definiert.
Eine Klasse erstellen
class User
def initialize(name)
@name = name
end
def say_name
puts "ich#{@name}ist."
end
end
Variable = Klassenname.neu (Argument)
Instanzgenerierung
tanaka = User.new("tanaka")
tanaka.say_name
#Ich bin Tanaka
yamada = User.new("yamada")
yamada.say_name
#Ich bin Yamada
Recommended Posts