関数の引数について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);
 もしかしたら何か関連しているかも? 
 質問や感想などお気軽にコメントしてください