Форум 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=138498)

Asterozoa 09.04.2010 10:53

Объявление функции
 
как при объявлении функции указать необязательные параметры???

Код AS3:

function some_fnctn(par1,par2,[par3])
{if (par3==undefined) {do_smthng()}
}

как сделать par3 - необязательным аргументом??

dmitriev 09.04.2010 10:55

Нужно указать значение по умолчанию.

Код AS3:

function some_fnctn(par1:int, par2:int, par3:Boolean = false):void
{
    if (!par3) do_smthng();
}


Crenth 09.04.2010 11:00

вот тут http://help.adobe.com/ru_RU/ActionSc...0204-7f56.html

на примере Объекта arguments в качестве параметра функции показано, как передавать неопределенное число параметров (функция примера function traceArgArray(x:int):void)

dmitriev 09.04.2010 11:06

Оттуда же:

Цитата:

Однако в строгом режиме будет выдаваться ошибка компиляции, если число переданных параметров не соответствует числу обязательных параметров (и дополнительных параметров, если такие имеются).
Так что я бы не рекомендовал такой способ.

Crenth 09.04.2010 11:10

на самом деле речь тут только о несоответствии количества переданных параметров количеству объявленных в описании функции. т.е. если вы описали функцию f(x,y), а вызвали ее f(x) - будет ошибка.
Однако, я не уверен, будет ли работать при описании f() вызов f(1,2,3,4,5). Но стоит проверить. Я думаю это будет ответом на вопрос автора темы

dmitriev 09.04.2010 11:26

В строгом режиме любое несоответствие вызовет ошибку.

Если всё же нужно передавать неограниченное кол-во параметров, то можно сделать так:
Код AS3:

function test(...argumentsList):void
{
        trace(argumentsList);
}
 
test(1, "hello", 33)


arkadattx 09.04.2010 17:29

Если я правильно понял автора, то наверное имелось в виду что-то типа
Код AS3:

function Main(param1:String,param2:Number,param3:Boolean=null){...



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

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