Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

336
Visualizações
Cómo asignar un puntero a una variable en Ruby

Soy nuevo en Ruby, solo me pregunto si es posible asignar una referencia a una clave hash a una variable.

 a = { foo: 1 } b = a[:foo] // I don't want assign the value b = 2 puts a

En lugar de asignar el valor, ¿hay alguna forma de asignar una referencia? Es solo que no quiero seguir escribiendo a[:foo] , sino que cada vez que b cambie, quiero reflejarlo en a[:foo] . Tal vez una macro que simplemente reemplace el texto, donde sea que escriba ACCESS_FOO se reemplazará con a[:foo] .

Pido disculpas si esto se pregunta antes. Cada vez que busco punteros, aparece el lenguaje C

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

no puedes

No hay punteros en Ruby, la variable solo contiene una referencia.
https://roberheaton.com/2014/07/22/is-ruby-pass-by-reference-or-pass-by-value/

Pero puedes implementar tu propio método. probablemente usando eval()

over 4 years ago · Santiago Trujillo Relatório

0

En Ruby, cada variable es solo un puntero/referencia a una instancia, no hay nada más.

 a = { foo: "Hello" } b = a[:foo] b.gsub!('e', 'a') puts a.inspect # => { foo: "Hallo" }

Entonces, en su ejemplo, b no se le asigna una copia de "Hola", realmente es una referencia a la misma instancia almacenada en el hash.

Sin embargo, cuando asigna una variable, está reemplazando la referencia/puntero almacenado en la variable con otra cosa.

Lo que parece intentar hacer es ir un nivel más profundo: desea tener un puntero a una referencia (supongo que una especie de P** en C). En Ruby puedes resolver esto con cualquier tipo de objeto adicional que pueda almacenar tu valor. ¿Qué tal una matriz?

 a = { foo: [1] } b = a[:foo] b[0] = 2 puts a.inspect # => { foo: [2] }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda