Was ist der Unterschied zwischen Ruby 1.8 und Ruby 1.9?
102
Die Unterschiede zwischen der "aktuellen" Version von Ruby (1.8) und der "neuen" Version (1.9) sind mir nicht klar. Gibt es eine "einfache" oder "einfache" Erklärung der Unterschiede und warum ist es so anders?
Ich nehme an, Sie meinen Ruby 1.8.6 - Ruby 1.8.7 hat viele Bibliothekskonstrukte ab 1.9.
Andrew Grimm
Ich betrachte die 1.8-Versionen nicht mehr als die "alten" und die 1.9.2+ als die "aktuellen". Ich verwende nur 1.8.7 für Kompatibilitätsprüfungen, entwickle aber in 1.9.2.
Um diese Informationen zur leichteren Bezugnahme inline zu bringen und falls der Link in der abstrakten Zukunft nicht mehr funktioniert, finden Sie hier eine Übersicht über Sams Folien. Die Diashow ist weniger überwältigend zu überprüfen, aber es ist auch hilfreich, alles in einer solchen Liste zu haben.
Ruby 1.9 - Hauptfunktionen
Performance
Fäden / Fasern
Codierung / Unicode
Edelsteine sind jetzt (meistens) eingebaut
if-Anweisungen führen keinen Gültigkeitsbereich in Ruby ein.
HTH == "Hoffe das hilft". Ich musste das nachschlagen. Können Sie mich auf eine Antwort verweisen, die Sie gegeben haben und bei der Sie nicht gehofft haben, dass sie helfen würde?
Chris Wesseling
Oder meintest du glücklich zu helfen? Bitte entsprechend bearbeiten. Oder entfernen Sie es, wenn Ihr Glück / Ihre Hoffnung für alle Ihre Antworten zählt. ;-)
Chris Wesseling
10
Nein, ich werde es so lassen wie es ist. In Prozent der Gesamtantwort ist es winzig und jede Interpretation ist für mich in Ordnung. Vielen Dank.
Tim Sullivan
Laut dem von Ihnen angegebenen Link war die Änderung der Delegierung ein Fehler und wurde behoben.
Kyle Strand
Was ist mit der Inkonsistenz zwischen "Range.include"? Methode? Ruby v1.8.7 gibt ein anderes Ergebnis als v1.9
Lucas Pottersky
12
Ein großer Unterschied wäre der Wechsel von Matz 'Interpreter zu YARV , einer virtuellen Bytecode-Maschine, die die Leistung erheblich verbessert.
Viele empfehlen jetzt die Ruby-Programmiersprache gegenüber der Spitzhacke - genauer gesagt, sie enthält alle Details der Unterschiede zwischen 1.8 und 1.9.
Ich mag sie beide. Das Pickaxe-Buch behandelt einige Dinge ausführlicher, aber die Ruby-Programmiersprache ist gut, wenn Sie schnell nach etwas suchen möchten. Es ist näher an einem "Nussschalen" Buch.
der Blechmann
1
Noch einige Änderungen:
Rückgabe eines Splat-Singleton-Arrays:
def function
return*[1]end
a=function
Rubin 1.9: [1]
Rubin 1,8: 1
Array-Argumente
def function(array)
array.each {|v| p v }end
function "1"
Antworten:
Sam Ruby hat eine coole Diashow, die die Unterschiede umreißt .
Um diese Informationen zur leichteren Bezugnahme inline zu bringen und falls der Link in der abstrakten Zukunft nicht mehr funktioniert, finden Sie hier eine Übersicht über Sams Folien. Die Diashow ist weniger überwältigend zu überprüfen, aber es ist auch hilfreich, alles in einer solchen Liste zu haben.
Ruby 1.9 - Hauptfunktionen
Was hat sich geändert?
Einzelne Zeichenketten.
Ruby 1.9
Ruby 1.8.6
String-Index.
Ruby 1.9
Ruby 1.8.6
{"a", "b"} Wird nicht mehr unterstützt
Ruby 1.9
Ruby 1.8.6
Aktion: In {1 => 2} konvertieren
Array.to_s
Enthält jetzt InterpunktionRuby 1.9
Ruby 1.8.6
Aktion: Verwenden Sie stattdessen .join
Doppelpunkt nicht mehr gültig in When-Anweisungen
Ruby 1.9
Ruby 1.8.6
Aktion: Verwenden Sie dann Semikolon oder Zeilenumbruch
Variablen jetzt blockieren Lokale Variablen schattieren
Ruby 1.9
Ruby 1.8.6
Hash.index
VeraltetRuby 1.9
Ruby 1.8.6
Aktion: Verwenden Sie Hash.key
Fixnum.to_sym
Jetzt wegRuby 1.9
Ruby 1.8.6
(Fortsetzung) Ruby 1.9
svn.ruby-lang.org/repos/ruby/trunk/lib/rake.rb
Hash-Schlüssel jetzt ungeordnet
Ruby 1.9
Ruby 1.8.6
Bestellung ist Einfügereihenfolge
Strengere reguläre Unicode-Ausdrücke
Ruby 1.9
Ruby 1.8.6
tr
undRegexp
jetzt Unicode verstehenRuby 1.9
pack
undunpack
Ruby 1.8.6
BasicObject
Brutaler alsBlankSlate
Ruby 1.9
Ruby 1.8.6
Aktion: Verwenden Sie :: Math :: PI
Änderungen an der Delegation
Ruby 1.9
Ruby 1.8.6
Defekt 17700Die Verwendung von $ KCODE erzeugt Warnungen
Ruby 1.9
Ruby 1.8.6
instance_methods
Nun eine Reihe von SymbolenRuby 1.9
Ruby 1.8.6
Aktion: Ersetzen Sie instance_methods.include? mit method_defined?
Quelldatei-Codierung
Basic
Emacs
Shebang
Echtes Einfädeln
Was gibt's Neues?
Alternative Syntax für Symbol als Hash-Schlüssel
Ruby 1.9
Ruby 1.8.6
Lokale Variablen blockieren
Ruby 1.9
Injizieren Sie Methoden
Ruby 1.9
Ruby 1.8.6
to_enum
Ruby 1.9
Kein Block? Aufzählung!
Ruby 1.9
Lambda-Kurzschrift
Ruby 1.9
Ruby 1.8.6
Komplexe Zahlen
Ruby 1.9
Dezimal ist immer noch nicht die Standardeinstellung
Ruby 1.9
Regex "Eigenschaften"
Ruby 1.9
Ruby 1.8.6
Splat in der Mitte
Ruby 1.9
Fasern
Ruby 1.9
Werte brechen
Ruby 1.9
"Verschachtelte" Methoden
Ruby 1.9
HTH!
quelle
Ein großer Unterschied wäre der Wechsel von Matz 'Interpreter zu YARV , einer virtuellen Bytecode-Maschine, die die Leistung erheblich verbessert.
quelle
Viele empfehlen jetzt die Ruby-Programmiersprache gegenüber der Spitzhacke - genauer gesagt, sie enthält alle Details der Unterschiede zwischen 1.8 und 1.9.
quelle
Noch einige Änderungen:
Rückgabe eines Splat-Singleton-Arrays:
Array-Argumente
quelle