Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

String tambem é um array?

Notei que esse codigo abaixo funciona, porém fiquei intrigado como consigo acessar uma posição de uma String. Posições [0],[1],[2]... nao deveriam ser acessadas apenas em arrays? Até hoje tenho dúvidas nessa e em outras linguagens sobre o real uso do [ ]. Se puderem me ajudar.

nome = "Paulo"

for i in 0..nome.size-1

puts nome[i]

end

1 resposta
solução!

Olá Lucas!

Neste caso, o resultado será cada letra do nome "Paulo" em uma linha embaixo da outra.

P
a
u
l
o

Em Ruby não existe tipos primitivos. Tudo é um objeto, inclusive a string "Paulo". Neste caso, o loop for está varrendo as posições do objeto nome, tanto que ao tentar adicionar a posição [5] como em um array irá compilar um erro:

nome[5] = "0"

Retornará:

NoMethodError: undefined method `[]=' for "Paulo"

Já, no caso a seguir, o resultado é o mesmo, porém, a variável nome, que só agora se trata de um array, poderá ter valores acrescidos com as posições dos colchetes [], como no exemplo abaixo:

nome = ["P","a","u","l","o"]
nome[5] = "o"

for i in 0..nome.size-1

puts nome[i]

end