Simples comparação entre as linguagens de programação e como podemos trabalhar com os argumentos variáveis.
No teste, todos os métodos podem receber inúmeros argumentos, esses argumentos serão retornados em uma string sendo separados por “|” (pipe)
PHP
//método function imprimir() { $args = func_get_args(); for ($i = 0; $i < func_num_args(); $i++) { echo($args[$i] . '|'); } } //chamando o método imprimir('a', 'b', 'c', 'd');
Python
# -*- coding: iso-8859-15 -*- # método def imprimir(*args): for arg in args: print arg, "|" # chamando o método imprimir("a", "b", "c", "d")
Java
public class Main { //método private static void imprimir(Object... params) { for (int i = 0; i < params.length; i++) { System.out.print(params[i] + "|"); } } public static void main(String[] args) { //chamando o método imprimir('a', 'b', 'c', 'd'); } }
Ruby
# método def imprimir(*args) args.each do | arg | print arg + "|" end end # chamando o método imprimir("a", "b", "c", "d")
JavaScript
//método function imprimir() { for (i = 0; i < imprimir.arguments.length; i++) { document.write(imprimir.arguments[i], '|'); } } //chamando o método imprimir('a', 'b', 'c', 'd');
Resultados
a|b|c|d|
Referências
- http://br2.php.net/manual/pt_BR/function.func-num-args.php
- http://blog.stiod.com/2009/09/28/funcoes-com-argumentos-variaveis-em-javascript/
- http://codare.net/2007/02/14/java-metodos-com-argumentos-variaveis/
- http://sfohart.blogspot.com/2009/01/scjp-mtodo-com-lista-de-argumentos.html
- http://www.arquivodecodigos.net/dicas/ruby-como-criar-metodos-que-aceitam-um-numero-variavel-de-argumentos-1579.html
- http://www.saltycrane.com/blog/2008/01/how-to-use-args-and-kwargs-in-python/