Tipos básicos no Ruby
Leia em 1 minuto
Alguns dos tipos básicos do Ruby possuem atalhos para definir valores como strings e arrays, por exemplo. Uma coisa muita gente não sabe, é a diferença entre os diversos tipos de atalhos, como você poderá conferir abaixo.
Strings
Existem cinco maneiras diferentes de se definir uma string no Ruby.
string = "Ruby is awesome!"
string = 'Ruby is awesome!'
string = %q(Ruby is awesome!)
string = %Q(Ruby is awesome!)
string = <<-TXT
Ruby is awesome!
TXT
O que difere uma das outras é a capacidade de se interpolar código Ruby na string.
lang = "Ruby"
puts "#{lang} is awesome!"
# => Ruby is awesome!
puts '#{lang} is awesome!'
# => #{lang} is awesome!
puts %Q(#{lang} is awesome!)
# => Ruby is awesome!
puts %q(#{lang} is awesome!)
# => #{lang} is awesome!
puts <<-TXT
#{lang} is awesome!
TXT
# => Ruby is awesome!
Arrays
O Array também possui formas diferentes de instanciação.
items = ["Ruby", "is", "awesome!"]
items = %w(Ruby is awesome!)
items = %W(Ruby is awesome!)
E de forma similar, a diferença entre as duas últimas formas é a interpolação de código Ruby.
lang = "Ruby"
items = %w(#{lang} is awesome!)
# => ["\#{lang}", "is", "awesome!"]
items = %W(#{lang} is awesome!)
# => ["Ruby", "is", "awesome!"]
Expressões regulares
Expressões regulares podem ser definidas de três formas diferentes.
regex = /ruby/sim
regex = %r(ruby)sim
regex = Regexp.new("ruby", Regexp::MULTILINE|Regexp::IGNORECASE|Regexp::EXTENDED)
Não existem diferenças na execução das expressões regulares; na prática, se sua expressão possui muitas aspas, é interessante usar o atalho %r()
.
Comandos Shell
A execução de comandos Shell pode ser feita de três maneiras diferentes.
`pwd`
%x(pwd)
system "pwd"
A única diferença prática é que o método system
irá enviar o resultado para STDOUT
, enquanto %x(pwd)
e `pwd`
irão retornar a resposta da execução.