PDA

Просмотр полной версии : Записать Dictionary из другого Dictionary


Appleman
02.02.2022, 18:23
Всем привет, 100 лет ничего не писал :) Всех с наступившими праздниками, включая китайский новый год.

Вопрос.
Имею экземпляр Dictionary в приватной переменной _dictionary, где по каким-то ключам записано что-то.
В методе создаю и заполняю новый экземпляр newDictionary.
Вопрос, корректно ли будет просто присвоить переменной класса результат из newDictionary? Или нужно создавать пустой и поочерёдно переносить записи? Спрашиваю, потому что нахлебался с косяками подобных конструкций по отношению к экземплярам Vector.

Код:
var newDictionary: Dictionary = createAndFillDictionary();
if (!compareDictionaries (_dictionary, newDictionary)) _dictionary = newDictionary;

Спасибо.

СлаваRa
08.02.2022, 12:08
Вопрос, корректно ли будет просто присвоить переменной класса результат из newDictionary?

да, не вижу никакой проблемы

Appleman
10.02.2022, 20:52
Спасибо. Я спросил, потому что долгое время мучился с векторами.

Если создать новый экземпляр Vector, наполнить его какими-нибудь значениями, записать в переменную, а затем создать новую переменную и записать в неё тот же вектор, то изменение этого вектора в одной (например, добавление элементов) приводит к тому, что в обеих переменных оказываются обновлённые вектора. Это абсолютно неочевидно для непосвящённого.

Поэтому если нужно сделать копию вектора, использую что-то вроде:

resultVector = resultVector.concat (sourceVector)
или
while (sourceVector.length) resultVector.push (sourceVector.shift());

СлаваRa
10.02.2022, 22:32
начинать нужно всегда с основ, и тогда будет очевидно, что ссылочные типы передаются по ссылке...

ps
лично от себя скажу, читать код, у которого перед скобками пробелы, ну просто отвратительно, скобка - экран имени функции, а вы ее еще и пробелом экранируете, но не всегда и не везде ;(

Appleman
16.02.2022, 12:04
Ну этим и отличаются профи от дилетантов-самоучек, что их учат с азов :)
На счёт пробелов, это дело вкуса имхо. Лично мне гораздо удобнее читать разреженный код, например

function perfectCombination (arg1: Number, arg2: String, argOptional: Boolean = false) : Number

для меня гораздо удобнее, чем то же самое как

function perfectCombination(arg1:Number, arg2:String, argOptional:Boolean=false):Number

СлаваRa
16.02.2022, 16:48
я выше писал про это:
function perfectCombination (
это единая конструкция, так-то ;)

зы
да и пишите вы то так () то так()