С Новым годом! Форум программистов, компьютерный форум, киберфорум
Ruby
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/26: Рейтинг темы: голосов - 26, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 01.08.2012
Сообщений: 6

передача параметров в метод

10.04.2013, 07:41. Показов 5223. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
необходимо передать в метод двумерный массив, поработать как-то с ним так, чтобы при выходе из метода переданный массив остался без изменений.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.04.2013, 07:41
Ответы с готовыми решениями:

Передача параметров в метод
Всем привет.. Вопрос начинающего.. В примерах кода в интеренете я заметил что передаватся в метод как параметр может как и ссылочный тип...

Передача множества параметров в метод
У меня есть допустим метод, который должен апдейтить информацию о пользователе. Но параметров там получается тьма. Как лучше передавать?...

Передача параметров в переопределенный метод
Доброго времени суток. Для передачи параметров в метод мне пришлось его переопределить. Всё вроде бы ничего, но осталась ошибка,...

2
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
10.04.2013, 12:05
Нужно сделать глубокое копирование. Стандартного метода нет, но его можно определить с использованием маршалинга для всех объектов, расширив класс Object:

Ruby
1
2
3
4
5
class Object
  def deep_copy
    Marshal.load(Marshal.dump(self))
  end
end
Пример:
Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
irb(main):012:0> def foo(arr)
                   arr2 = arr.deep_copy
                   arr2[0][1] = "foo" # изменение на втором уровне
                   arr2.reverse! # изменение на первом уровне
                 end
nil
irb(main):017:0> arr = [[1,2],[3,4]]
[[1, 2], [3, 4]]
irb(main):018:0> foo arr
[[3, 4], [1, "foo"]]
irb(main):019:0> arr # исходный массив не изменился:
[[1, 2], [3, 4]]
irb(main):020:0>
Если мы будем делять только изменения «первого уровня» (см. комментарий к примеру), то можно ограничиться поверхностным копированием (метод dup).
1
0 / 0 / 0
Регистрация: 01.08.2012
Сообщений: 6
10.04.2013, 12:33  [ТС]
Цитата Сообщение от Nameless One Посмотреть сообщение
Нужно сделать глубокое копирование. Стандартного метода нет, но его можно определить с использованием маршалинга для всех объектов, расширив класс Object:

Ruby
1
2
3
4
5
class Object
  def deep_copy
    Marshal.load(Marshal.dump(self))
  end
end
Пример:
Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
irb(main):012:0> def foo(arr)
                   arr2 = arr.deep_copy
                   arr2[0][1] = "foo" # изменение на втором уровне
                   arr2.reverse! # изменение на первом уровне
                 end
nil
irb(main):017:0> arr = [[1,2],[3,4]]
[[1, 2], [3, 4]]
irb(main):018:0> foo arr
[[3, 4], [1, "foo"]]
irb(main):019:0> arr # исходный массив не изменился:
[[1, 2], [3, 4]]
irb(main):020:0>
Если мы будем делять только изменения «первого уровня» (см. комментарий к примеру), то можно ограничиться поверхностным копированием (метод dup).
благодарю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.04.2013, 12:33
Помогаю со студенческими работами здесь

Передача параметров в метод обратного вызова?
Здравствуйте. Пытаюсь передать параметр в метод обратного вызова на событие OnSuccess метода Ajax.BeginForm. И так:...

Задача на передача в метод параметров примитивных типов и рекурсивные методы
Ребята, выручите, пожалуйста! Во вторник сдача, а я дуб-дерево Нужно/ 1. Создать класс, содержащий метод, который позволяет с точностью...

Передача параметров через список параметров формы
Hi all! У кого есть опыт передачи параметров через заголовочный список параметров формы? Желетельно пример записи. Заранее...

Передача нескольких параметров в pthread_create (передача структуры)
Здравствуйте. Мне нужно передать последним параметром в функцию pthread_create следующую структуру struct data { float a; ...

Переписать метод в метод без параметров
Уважаемые программисты, который день мучаюсь не могу преобразовать метод так чтобы в нем не использовалось ни ref ни out. Помогите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru