Day11:伸缩自如的

在我们定义method时,若需要有外来的数值input进来运算,就会定义parameter:

int sum (int num01, int num02){
    return num01 + num02;
}

上面的范例可以传入两个int,执行後会返回一个相加後的int。

但如果我们不一定只有2个int要做加总该怎麽办呢?难道要分别定义可以传入3个int引数、传入4个int引数、传入5个int引数......这样吗?

int sum (int num01, int num02, int num03){
    return num01 + num02 + num03;
}
int sum (int num01, int num02, int num03, int num04){
    return num01 + num02 + num03 + num04;
}
int sum (int num01, int num02, int num03, int num04, int num05){
    return num01 + num02 + num03 + num04 + num05;
}
......永无止境......

为了解决这样的需求,Java提供了不定长度引数(Variable-length Argument)这样的用法:

int sum (int... nums){
    int result = 0;  
    for(int num : nums){
        result += num;    
    }
    return result; 
}

只要定义了不定程度引数int… nums,代表我们可以在叫用这个方法时,放入任意数量的int型态引数。从以上的操作可以看出,其实不定长度引数本质就是一个阵列。

不定长度引数还有2个需要注意的规则:

  1. 一个method所能传入的引数中,只能定义一个不定长度引数
  2. 当method有其他引数时,不定长度引数必须要放在最後面

其实以上这两个规则都有其理由,大家可以想想看,若不定长度引数有两个时,会发生甚麽事情呢?抑或当仍有其他引数要传入时,不定长度引数不放在最後面会发生甚麽事情?


<<:  Day11_复习一下本文的吗~XD"

>>:  30天学会C语言: Day 8-无限执行篇

[D29] 检测框的精准度

现在来更加了解准确度这件事吧! 在前面有讲过 IoU ,它是用来跟标准框比较的准则,当它的值(0~1...

Day 26 UserDefault

UserDefault是一种临时储存的功能,类似於我们打开游戏第一次会出现的新手教学那样,基本上他只...

Day 18 : 笔记篇 05— 如何整理学习笔记?分享我的学习笔记整理流程

前言 在 上一篇文章 中,我提到使用 Obsidian 处理笔记的过程,但在「纪录资讯」这一段没有多...

Eloquent ORM - 读取资料

读取表单中的所有资料 接下来的步骤将把 todo 表单中的资料取出展示在 Dashboard 上。 ...

从 IT 技术面细说 Search Console 的 27 组数字 KPI (5) 流量:新闻与探索

Search Console 并不是都是看到使用者主动搜寻的流量,其中探索 (Discover) 与...