Não estou claro sobre as diferenças entre a versão "atual" do Ruby (1.8) e a "nova" versão (1.9). Existe uma explicação "fácil" ou "simples" das diferenças e por que é tão diferente?
Suponho que você queira dizer Ruby 1.8.6 - Ruby 1.8.7 tem muitas construções de biblioteca a partir do 1.9.
Andrew Grimm
Além disso, considero as versões 1.8 as versões "antigas" e 1.9.2+ as "atuais". Eu só uso 1.8.7 para verificações de compatibilidade, mas desenvolvo em 1.9.2.
No interesse de trazer essas informações embutidas para referência mais fácil e no caso de o link ficar inativo em um futuro abstrato, aqui está uma visão geral dos slides de Sam. A apresentação de slides é menos complicada de revisar, mas ter tudo em uma lista como esta também é útil.
Eu gosto dos dois. O livro Pickaxe discute algumas coisas de forma mais completa, mas a linguagem de programação Ruby é boa quando você deseja procurar algo rapidamente. Está mais perto de um livro "resumido".
o Homem de Lata de
1
Mais algumas mudanças:
Retornando uma matriz splat singleton:
def function
return*[1]end
a=function
rubi 1.9: [1]
rubi 1.8: 1
argumentos de matriz
def function(array)
array.each {|v| p v }end
function "1"
Respostas:
Sam Ruby tem um slideshow legal que mostra as diferenças .
No interesse de trazer essas informações embutidas para referência mais fácil e no caso de o link ficar inativo em um futuro abstrato, aqui está uma visão geral dos slides de Sam. A apresentação de slides é menos complicada de revisar, mas ter tudo em uma lista como esta também é útil.
Ruby 1.9 - Principais recursos
O que mudou?
Sequências de caracteres únicos.
Ruby 1.9
Ruby 1.8.6
Índice de string.
Ruby 1.9
Ruby 1.8.6
{"a", "b"} Não há mais suporte
Ruby 1.9
Ruby 1.8.6
Ação: Converter para {1 => 2}
Array.to_s
Agora contém pontuaçãoRuby 1.9
Ruby 1.8.6
Ação: use .join em vez disso
Os dois pontos não são mais válidos nas declarações When
Ruby 1.9
Ruby 1.8.6
Ação: use ponto-e-vírgula ou nova linha
Block Variables Now Shadow Local Variables
Ruby 1.9
Ruby 1.8.6
Hash.index
DescontinuadaRuby 1.9
Ruby 1.8.6
Ação: Use Hash.key
Fixnum.to_sym
Agora se foiRuby 1.9
Ruby 1.8.6
(Continua) Ruby 1.9
svn.ruby-lang.org/repos/ruby/trunk/lib/rake.rb
Chaves de hash agora não ordenadas
Ruby 1.9
Ruby 1.8.6
O pedido é um pedido de inserção
Expressões regulares Unicode mais estritas
Ruby 1.9
Ruby 1.8.6
tr
eRegexp
agora entenda UnicodeRuby 1.9
pack
eunpack
Ruby 1.8.6
BasicObject
Mais brutal do queBlankSlate
Ruby 1.9
Ruby 1.8.6
Ação: Use :: Math :: PI
Mudanças de delegação
Ruby 1.9
Ruby 1.8.6
Defeito 17700O uso de $ KCODE produz avisos
Ruby 1.9
Ruby 1.8.6
instance_methods
Agora uma série de símbolosRuby 1.9
Ruby 1.8.6
Ação: Substituir instance_methods.include? com method_defined?
Codificação do arquivo fonte
Básico
Emacs
Shebang
Threading real
O que há de novo?
Sintaxe alternativa para símbolo como chaves de hash
Ruby 1.9
Ruby 1.8.6
Variáveis locais do bloco
Ruby 1.9
Métodos de injeção
Ruby 1.9
Ruby 1.8.6
to_enum
Ruby 1.9
Sem bloqueio? Enum!
Ruby 1.9
Lambda Taquigrafia
Ruby 1.9
Ruby 1.8.6
Números complexos
Ruby 1.9
Decimal ainda não é o padrão
Ruby 1.9
Regex “Propriedades”
Ruby 1.9
Ruby 1.8.6
Splat no meio
Ruby 1.9
Fibras
Ruby 1.9
Quebrar valores
Ruby 1.9
Métodos “aninhados”
Ruby 1.9
HTH!
fonte
Uma grande diferença seria a mudança do intérprete de Matz para YARV , uma máquina virtual de bytecode que ajuda significativamente no desempenho.
fonte
Muitos agora recomendam The Ruby Programming Language em vez da Pickaxe - mais precisamente, ela tem todos os detalhes das diferenças 1.8 / 1.9.
fonte
Mais algumas mudanças:
Retornando uma matriz splat singleton:
argumentos de matriz
fonte