Todas as Strings literais serão imutáveis (frozen) no Ruby 3.0, mas o que isso significa?

Hoje nós podemos fazer algo do tipo:

mensagem = 'uma string qualquer'
mensagem.upcase!

Esse código alteraria a string 'uma string qualquer' para 'UMA STRING QUALQUER', apesar de muito legal, isso tem um custo na performance do nosso código.

Por esse motivo, a partir do Ruby 3.0 isso não será mais possível (veja a discussão que rolou no Twitter).

Para suportar melhor a transição para a nova versão, no Ruby 2.3 nós podemos colocar um comentário mágico (magic comment). Além de melhorar a performance congelando as strings, essa pequena mudançã vai te ajudar na futura transição para o Ruby 3.

Adicione o comentário no inicio do código como no exemplo:

# frozen_string_literal: true

require 'rails_helper'

feature 'User adds a comment' do
  scenario 'sucessfully' do
  end
end

Se já esta usando o Ruby 2.3 experimente adicionar esse comentário no seu código, nós já estamos fazendo isso!

Logo Campus Code

Gostou desse conteúdo? Você pode aprender muito mais programando ao lado do Alan Batista e de outros desenvolvedores nos treinamentos do Campus Code. Nossos programas incluem os conteúdos mais pedidos pelo mercado como Ruby on Rails, Git, TDD, práticas ágeis, HTML 5, CSS e SQL.

Comentários