関数の引数について3分で語ってみた

この記事はだいぶ前に書かれたものなので情報が古いかもしれません
名前付き引数と可変長引数

この記事を三行にまとめると

名前付き引数
可変長引数
両者の組み合わせ
この記事は以下の動画の中に出てきたサンプルコードを載せたものです。コピペなどが必要なときに使ってください。





配列の平均値を求める関数

function array_average($arr, $prec = 1) {
  echo round(array_sum($arr) / count($arr), $prec);
}

array_average([23, 16, 5]);



画面に出力するか否かのフラグを引数に追加

function array_average($arr, $prec = 1, $out) {
  $ave = round(array_sum($arr) / count($arr), $prec);
  
  if($out) {
    echo $ave;
  }

  return $ave;
}
array_average([23, 16, 5], 1, false);



名前付き引数(キーワード引数)

// PHPの名前付き引数
function array_average($arr, $prec = 1, $out) {
  $ave = round(array_sum($arr) / count($arr), $prec);
  
  if($out) {
    echo $ave;
  }

  return $ave;
}
$res = array_average(arr: [23, 16, 5], out: false);

// JavaScriptの名前付き引数
function hogehoge({arg1, arg2 = 'abc', arg3}) {
  console.log(arg1)
  console.log(arg2)
  console.log(arg3)
}

hogehoge({arg1: 123, arg3: 'あいう'});

// Pythonのキーワード引数
def hogehoge(arg1, arg2 = 'abc', arg3 = 'def'):
  print(arg1)
  print(arg2)
  print(arg3)

hogehoge(arg1 = 123, arg3 = 'あいう');



可変長引数

// PHPの可変長引数
function array_average(...$args) {
  $ave = array_sum($args[0]) / count($args[0]);
  $ave = round($ave, $args[1]);
  
  if($args[2]) {
    echo $ave;
  }

  return $ave;
}
$res = array_average([23, 16, 5], 1, true);

// 名前付き引数と組み合わせた場合
function array_average(...$args) {
  $ave = array_sum($args['a']) / count($args['a']);
  $ave = round($ave, $args['p']);
  
  if($args['o']) {
    echo $ave;
  }

  return $ave;
}
$res = array_average(a: [23, 16, 5], p: 1, o: true);

// JavaScriptの可変長引数
function hogehoge(...args) {
  console.log(args)
}
hogehoge([23, 16, 5], 1, true);

// Pythonの可変長引数
def hogehoge(*args):
  print(args)

hogehoge([23, 16, 5], 1, true);

// キーワード引数と組み合わせた場合
def hogehoge(**args):
  print(args)

hogehoge(a = [23, 16, 5], p = 1, o = true);
 もしかしたら何か関連しているかも? 
 質問や感想などお気軽にコメントしてください