![名前付き引数と可変長引数](https://norm-nois.com/blog/wp-content/uploads/2022/06/argument.jpg)
この記事を三行にまとめると
名前付き引数可変長引数
両者の組み合わせ
この記事は以下の動画の中に出てきたサンプルコードを載せたものです。コピペなどが必要なときに使ってください。
配列の平均値を求める関数
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);