Saya tidak mengerti dengan jelas perbedaan antara versi Ruby "saat ini" (1.8) dan versi "baru" (1.9). Adakah penjelasan yang "mudah" atau "sederhana" tentang perbedaan tersebut dan mengapa begitu berbeda?
Saya berasumsi maksud Anda Ruby 1.8.6 - Ruby 1.8.7 memiliki banyak konstruksi perpustakaan dari 1.9.
Andrew Grimm
Lebih lanjut, saya menganggap versi 1.8 sebagai versi "lama", dan 1.9.2+ sebagai versi "saat ini". Saya hanya menggunakan 1.8.7 untuk pemeriksaan kompatibilitas tetapi mengembangkan di 1.9.2.
Untuk kepentingan membawa informasi ini sebaris untuk referensi yang lebih mudah, dan jika tautan mati di masa depan yang abstrak, berikut adalah ikhtisar dari slide Sam. Rangkai salindia tidak terlalu berlebihan untuk ditinjau, tetapi mengatur semuanya dalam daftar seperti ini juga membantu.
Ruby 1.9 - Fitur Utama
Performa
Benang / Serat
Pengkodean / Unicode
permata (kebanyakan) sudah ada di dalamnya sekarang
HTH == "Semoga membantu". Saya harus mencarinya. Dapatkah Anda menunjukkan kepada saya jawaban yang Anda berikan, di mana Anda tidak berharap itu akan membantu?
Chris Wesseling
Atau apakah maksud Anda Senang membantu? Harap edit seperlunya. Atau hapus, jika kebahagiaan / harapan Anda penting untuk semua jawaban Anda. ;-)
Chris Wesseling
10
Tidak, saya akan membiarkannya apa adanya. Sebagai persentase dari total jawaban, itu sangat kecil dan interpretasi baik-baik saja bagi saya. Terima kasih.
Tim Sullivan
Menurut tautan yang Anda berikan, perubahan delegasi adalah bug dan telah diperbaiki.
Kyle Strand
Bagaimana dengan ketidakkonsistenan antara "Range.include?" metode? Ruby v1.8.7 memberikan hasil yang berbeda dari v1.9
Lucas Pottersky
12
Satu perbedaan besar adalah perpindahan dari interpreter Matz ke YARV , mesin virtual bytecode yang membantu kinerja secara signifikan.
Saya menyukai keduanya. Buku Pickaxe membahas beberapa hal dengan lebih lengkap tetapi Ruby Programming Language bagus ketika Anda ingin memindai sesuatu dengan cepat. Ini lebih dekat dengan buku "singkatnya".
Tin Man
1
Beberapa perubahan lagi:
Mengembalikan larik tunggal percikan:
def function
return*[1]end
a=function
ruby 1.9: [1]
ruby 1.8: 1
argumen array
def function(array)
array.each {|v| p v }end
function "1"
ruby 1.8: "1"
ruby 1.9: metode tidak terdefinisi `each 'for" 1 ": String
Jawaban:
Sam Ruby memiliki tayangan slide keren yang menjelaskan perbedaannya .
Untuk kepentingan membawa informasi ini sebaris untuk referensi yang lebih mudah, dan jika tautan mati di masa depan yang abstrak, berikut adalah ikhtisar dari slide Sam. Rangkai salindia tidak terlalu berlebihan untuk ditinjau, tetapi mengatur semuanya dalam daftar seperti ini juga membantu.
Ruby 1.9 - Fitur Utama
Apa yang berubah?
String karakter tunggal.
Ruby 1.9
Ruby 1.8.6
Indeks string.
Ruby 1.9
Ruby 1.8.6
{"a", "b"} Tidak Lagi Didukung
Ruby 1.9
Ruby 1.8.6
Tindakan: Ubah menjadi {1 => 2}
Array.to_s
Sekarang Berisi Tanda BacaRuby 1.9
Ruby 1.8.6
Tindakan: Gunakan .join sebagai gantinya
Colon Tidak Lagi Berlaku Di Saat Pernyataan
Ruby 1.9
Ruby 1.8.6
Tindakan: Gunakan titik koma, lalu, atau baris baru
Blokir Variabel Sekarang Bayangkan Variabel Lokal
Ruby 1.9
Ruby 1.8.6
Hash.index
Tidak digunakan lagiRuby 1.9
Ruby 1.8.6
Tindakan: Gunakan Hash.key
Fixnum.to_sym
Sekarang HilangRuby 1.9
Ruby 1.8.6
(Lanjutan) Ruby 1.9
svn.ruby-lang.org/repos/ruby/trunk/lib/rake.rb
Hash Keys Sekarang Tidak Berurutan
Ruby 1.9
Ruby 1.8.6
Urutan adalah urutan penyisipan
Ekspresi Reguler Unicode yang Lebih Ketat
Ruby 1.9
Ruby 1.8.6
tr
danRegexp
Sekarang Pahami UnicodeRuby 1.9
pack
danunpack
Ruby 1.8.6
BasicObject
Lebih Brutal DaripadaBlankSlate
Ruby 1.9
Ruby 1.8.6
Tindakan: Gunakan :: Matematika :: PI
Perubahan Delegasi
Ruby 1.9
Ruby 1.8.6
Cacat 17700Penggunaan $ KCODE Menghasilkan Peringatan
Ruby 1.9
Ruby 1.8.6
instance_methods
Sekarang Array of SymbolsRuby 1.9
Ruby 1.8.6
Tindakan: Ganti instance_methods.include? dengan method_defined?
Pengkodean File Sumber
Dasar
Emacs
Peristiwa
Threading Nyata
Apa yang baru?
Sintaks Alternatif untuk Simbol sebagai Kunci Hash
Ruby 1.9
Ruby 1.8.6
Blok Variabel Lokal
Ruby 1.9
Metode Injeksi
Ruby 1.9
Ruby 1.8.6
to_enum
Ruby 1.9
Tidak ada blok? Enum!
Ruby 1.9
Lambda Shorthand
Ruby 1.9
Ruby 1.8.6
Bilangan Kompleks
Ruby 1.9
Desimal Masih Bukan Default
Ruby 1.9
Regex "Properti"
Ruby 1.9
Ruby 1.8.6
Percikan di Tengah
Ruby 1.9
Serat
Ruby 1.9
Break Values
Ruby 1.9
Metode "Bersarang"
Ruby 1.9
HTH!
sumber
Satu perbedaan besar adalah perpindahan dari interpreter Matz ke YARV , mesin virtual bytecode yang membantu kinerja secara signifikan.
sumber
Banyak yang sekarang merekomendasikan Bahasa Pemrograman Ruby daripada Beliung - lebih tepatnya, ia memiliki semua detail perbedaan 1.8 / 1.9.
sumber
Beberapa perubahan lagi:
Mengembalikan larik tunggal percikan:
argumen array
sumber