Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Записать Dictionary из другого Dictionary (http://www.flasher.ru/forum/showthread.php?t=215806)

Appleman 02.02.2022 18:23

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

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

Код:
Код AS3:

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

Спасибо.

СлаваRa 08.02.2022 12:08

Цитата:

Вопрос, корректно ли будет просто присвоить переменной класса результат из newDictionary?
да, не вижу никакой проблемы

Appleman 10.02.2022 20:52

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

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

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

Код AS3:

resultVector = resultVector.concat (sourceVector)

или
Код AS3:

while (sourceVector.length) resultVector.push (sourceVector.shift());


СлаваRa 10.02.2022 22:32

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

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

Appleman 16.02.2022 12:04

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

Код AS3:

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

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

Код AS3:

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


СлаваRa 16.02.2022 16:48

я выше писал про это:
Код AS3:

function perfectCombination (

это единая конструкция, так-то ;)

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


Часовой пояс GMT +4, время: 00:16.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.