Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   передача не всех параметров в функцию (http://www.flasher.ru/forum/showthread.php?t=132514)

orcpochta 13.11.2009 04:42

передача не всех параметров в функцию
 
допустим есть функция с двумя (и более) объявленными по умолчанию параметрами, например:
func(param1:Number = 1; param2:String = "a"):void {}

как ее вызвать без передачи первого параметра?

т.е. func(что-то, "test");

P.S. я честно рылся в поиске

wvxvw 13.11.2009 05:14

Передать дефолтный параметр...

orcpochta 13.11.2009 05:47

Цитата:

Сообщение от wvxvw (Сообщение 865334)
Передать дефолтный параметр...

т.е., кроме как func(1, "test");, никак больше нельзя?

P.S. вроде во всяких фильтрах, когда много параметров, и надо указать, например, 4, а 2 и 3 не важны, что пишут? null? или false?
как такое реализовать?

alecsisk 13.11.2009 10:09

Вначале идут обязательные параметры, потом необязательные. Если параметр ненужен, то передавайте как сказал wvxvw дефолтное значение.
Цитата:

вроде во всяких фильтрах, когда много параметров, и надо указать, например, 4, а 2 и 3 не важны, что пишут? null? или false?
В зависимости от типа.

P.S. Вообще если возникает вопрос как вызвать функцию без передачи первого параметра, значит второй параметр важнее и имеет смысл поменять местами 1ый и 2ой.

bicubic_bublic 13.11.2009 11:20

можно сделать дефолтовые значения null'ы, а внутри функции сравнивать с null'ом и устанавливать правильные дефолтовые значения.
тогда и func(null, "blahblah") и func(123, null) и func() сработает так как вы хотите.

Zebestov 14.11.2009 21:56

Оффтоп: а в javascript можно тупо запятые подряд писать, де надо параметр опустить ) иногда скучаешь по этому бардаку )

bicubic_bublic 15.11.2009 00:02

Цитата:

Сообщение от Zebestov (Сообщение 865648)
Оффтоп: а в javascript можно тупо запятые подряд писать, де надо параметр опустить ) иногда скучаешь по этому бардаку )

что за бред...

Felicast 15.11.2009 00:11

Цитата:

Сообщение от Zebestov (Сообщение 865648)
Оффтоп: а в javascript можно тупо запятые подряд писать, де надо параметр опустить ) иногда скучаешь по этому бардаку )

вы путаете что-то. в javascript часто практикуется такое:
Код:

function someFunc(params)
{
        alert(params.param1 + params.param2);
}
someFunc({param1:"hello", param2:"world"};
someFunc({param2:"world", param1:"hello"};

(может наврал что-то, но идея должна быть понятна)

в ас вас тоже никто не останавливает:
Код AS3:

function someFunc(params:Object):void
{
        trace(params.param1 + params.param2);
}
someFunc({param1:"hello", param2:"world"};
someFunc({param2:"world", param1:"hello"};


incoob 15.11.2009 00:27

Цитата:

Сообщение от Zebestov (Сообщение 865648)
Оффтоп: а в javascript можно тупо запятые подряд писать, де надо параметр опустить ) иногда скучаешь по этому бардаку )

У меня мозилка ругается на
Код:

function qqq(p1,p2,p3,p4)
{
alert(p1+p2+p3+p4)
}
qqq(1,2,,4)


Zebestov 15.11.2009 02:47

не убивайте - не js таки ) но гарантирую, что где-то вписывал две запятые подряд... а где — хоть стреляйте ) блин надо вспомнить...


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

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