Argumentos variável e padrão em Javascript, Actionscript e PHP

Quem desenvolve sabe que uma das características de funções ( function () ) é ter ou não os argumentos de entrada. Pode acontecer, às vezes você tem que escrever uma função que, com base em parâmetros de entrada, comporta de forma diferente (em programação OO este comportamento são chamados de polimorfismo). Parâmetros variáveis ​​(varargs), já introduzida no momento do presente por padrão em C e declaração clássica dos main :

1
int main (int argc, char * argv []);

Mas não deve ser confundida com a configuração padrão de um parâmetro, agora totalmente suportada no ActionScript 3.0.

Argumentos padrão

Por exemplo, em PHP é possível definir uma função como esta:

1
2
3
$a , $b = 5 ) { function bar ($ a, $ b = 5) {
/ Todosomethink /
}

o parâmetro de $b é opcional, ou seja, se ele não é passado durante a chamada para a função irá assumir o valor padrão de 5.

Como antecipado no ActionScript 3.0 já suporta este sistema:

ActionScript 3.0 introduz a capacidade de declarar os valores de parâmetro padrão para uma função. Se uma chamada para uma função com valores de parâmetro padrão omite um parâmetro com um padrão, ele usa o valor especificado para esse parâmetro na definição da função. Todos os parâmetros com valores padrão deve ser posicionado no final do parâmetro. Os valores atribuídos como valores padrão deve ser de tempo de compilação constantes. A existência de um valor padrão para um parâmetro efetivamente faz esse parâmetro um parâmetro opcional, enquanto um parâmetro sem um valor padrão é considerado um parâmetro obrigatório.

O mesmo vale para PHP: Um parâmetro com um valor padrão para o vento opcional.

No ActionScript 3.0, semelhante ao exemplo discutido acima em PHP, você pode ajustar os parâmetros de entrada da seguinte forma:

1
2
3
a : int , b : int = 5 ) : void { function bar (a: int , b: int = 5): void {
/ Todosomethink /
}

Mesmo neste caso o segundo parâmetro b automaticamente torna-se opcional.

Em JavaScript, infelizmente, essa característica não é - ainda - suportados. Embora existam alguns "complicado" técnicas (ver, por exemplo, argumentos padrão em funções JavaScript ) para simular ou contornar o obstáculo, o uso dessa técnica em JavaScript é muito limitada.

Parâmetros variáveis

Esta técnica, ao contrário de seu antecessor, permite examinar o conteúdo ea presença dos parâmetros de entrada de uma função. É evidente que este método também pode ser usado para definir os parâmetros faltantes. e func_get_arg() . Em PHP, por exemplo, temos três funções simples que operam em parâmetros de entrada: func_num_args() , func_num_args() e func_get_arg() . Estas funções permitem que você retorne, respectivamente, o número de argumentos, retornar um array com todos os elementos de entrada, recuperar um item específico de entrada. Por exemplo:

1
2
3
bar function () {
. func_num_args ( ) ; 'Número de argumentos =' echo. func_num_args ();
}

Retorna o número de argumentos passados ​​para a função de pluto . No exemplo abaixo, no entanto, é visto como uma função do seu comportamento pode variar dependendo do número (e também o tipo - polimofica) de seus parâmetros. Neste caso, se nós chamamos de pluto() com dois ou mais parâmetros é exibido não o contrário.

1
2
3
4
bar function () {
func_num_args ( ) > 2 ) if ( func_num_args ()> 2)
. func_get_arg ( 1 ) ; // essendo in base 0 echo 'segundo parâmetro é'. func_get_arg (1), / / sendo baseado em 0
}

Isso também permite que você "simular" um conjunto de parâmetros padrão, mas desde o PHP suporta nativo e ainda mais conveniente que o previsto acima. Mas aqui está um exemplo para esclarecer:

1
2
3
4
5
bar function () {
! isset ( func_get_arg ( 1 ) ) ) { if ( isset ( func_get_arg (1))) {
/ / O segundo parâmetro não foi passado
}
}

ou:

1
2
3
4
5
bar function () {
func_num_args ( ) < 2 ) { if ( func_num_args () <2) {
/ / O segundo parâmetro não foi passado
}
}

Em Actionscript e Javascript ter uma situação como esta:

1
2
3
4
5
6
7
bar function () {
'Numero argomenti passati = ' + arguments . length ) ; trace ("Número de argumentos = '+ argumentos comprimento.);
/ / Imprimir todos os tópicos
var i : uint = 0 ; i < arguments . length ; i ++ ) { for (var i: uint = 0; i < argumentos comprimento; i + +.) {
arguments [ i ] ) ; trace ( argumentos [i]);
}
}

Javascript:

1
2
3
4
5
6
7
8
9
bar function () {
'Numero argomenti passati = ' + arguments. length ) ; alert ('Número de argumentos =' + argumentos comprimento.);
/ / Imprimir todos os tópicos
'' ; var o ='';
var i = 0 ; i < arguments. length ; i ++ ) { for (var i = 0; i <argumentos comprimento;. i + +) {
i ] + ' \n ' ; ou + = arguments [i] + '\ n';
}
o ) ; alert (o);
}

Desde ECMA, Actionscript e Javascript se assemelham muito, usando tanto um objeto arguments que, então, fornece diversas informações.

2 comentários para "temas e variáveis ​​padrão em Javascript, Actionscript e PHP"

  1. 11 de junho de 2008 variáveis ​​Tópicos em Actionscript 3.0 | Undolog.com :

    [...] Tópicos Post e variáveis ​​padrão em Javascript, Actionscript e PHP eu estava exposta, usando as técnicas de passagem de parâmetros e variáveis ​​padrão. Acrescentar, agora, [...]

  2. 05 de janeiro de 2009 WordPress: wp_parse_args () | Undolog.com :

    [...] Nas funções WordPress e é útil quando uma função suporta paramteri múltiplas. Como afirmado em Indivíduos e variáveis ​​padrão em Javascript, Actionscript e PHP, não há necessidade de passar parâmetros no modo [...]

Deixe um comentário

XHTML PERMIT TAG: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> CÓDIGO DE INSERÇÃO:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL