Ruby gsub! изменить все - PullRequest
       54

Ruby gsub! изменить все

0 голосов
/ 02 августа 2020

в Ruby У меня такая ситуация

monurl = mon[0][1]['externallinks'][0]
nowlm = mon[0][1]['externallinks'][0]

с

mon[0][1]['externallinks'][0] = 'abc'

Если я сделаю

monurl.gsub!('a', 'z')

monurl изменяется, но также mon[0][1]['externallinks'][0] и nowlm из-за управления объектами Ruby.

Есть ли способ изменить только monurl, а не mon[0][1]['externallinks'][0] и nowlm?

Заранее спасибо .

Ответы [ 2 ]

4 голосов
/ 02 августа 2020
monurl = monurl.gsub('a', 'z')

Это изменяет monurl, но оставляет nowlm и mon[0][1]['externallinks'][0] без изменений.

0 голосов
/ 03 августа 2020

Если вы хотите, чтобы monurl управлял своей собственной копией строки с самого начала, просто позвольте ей ссылаться на копию строки, а не на оригинал:

monurl = mon[0][1]['externallinks'][0].dup
...