[音乐]
在下面这个例子里面来我们继续讨论一下关于这样的一个
函数或者方法参数列表里面的这个可选参数跟命名参数的这样一个问题 那么我们直接来看这样的一个例题
11 [无声]
[无声]
[无声]
[无声] [无声]
[无声]
[无声]
[无声]
那么在这个例子里面我们简单的举一个例子来说明什么是可选参数和什么是这样的一个命名参数
[无声]
同样的,那么假设我们存在着这样的一个
一个这样的一个方法,这个方法我们就是一个简单的例子,叫作
Sam,那么在这个方法里面假设我们 传递有三个参数,一个 int
a,一个 double b 还有一个 int
c 还有一个,四个参数,还有一个 char d。
那么,在这个函数里面 在这个函数里面,本身这个函数代码干什么我们并不是太关心,并不是太关心
我们简单的让 a=a+1 让它干一些什么事情呢
b=a+c 做一些什么样的事情呢,我们并不是关心的
那么我们现在关心的是,那么我们可以给这样的一个参数一个默认值 給它一个默认值。
那对于这样的一个具有四个参数的这样的一个方法来说 那么如果要在这个主函数里面,或者说要调用这个方法的时候
那么当然应该给足四个对应的参数,才能够进行调用。
通常应该让 a= 2 b
= [无声]
double b = 45
int c =
[无声] 等等。
给出这样的四个参数 那么下来这样的一个函数调用,才能够使得正确的
a b c d
那么在有些时候我们可以怎么样呢,我们给出这样的一个
缺省值,或者是它的一个默认值,那么譬如讲我们怎么样呢,我们可以给 这样的一个
char d,后面直接写出一个等号,然后让它 缺省R,也就是说,在给这样一个
没有在给这样的一个的 d 的情况下,那么 d 的默认值是
R 这个东西叫作一个缺省值,或者它的一个默认值 那么有了这样的一个
d 的这样的一个默认值的时候,那么这个参数 d 就变成了一个可选参数
也就是说,那么我们调用这样的一个函数的时候,我们可以 给 d 传递一个值,不同于 R 的值。
我们传递一个 Y 传递一个不同的 R 值,那么正常的调用这样一个的函数。
我们也可以 在调用这个函数的时候,不给 d 的值,那么它也是正确的
这样也是一个正确的调用。
那么 这样也是一个正确的调用,那么这时候 d 的值取它的这样一个默认值 R
那么这个就叫做一个可选参数 那么关于可选参数我们有这样的一个几点的一个说明
一个是,在一个函数里面,或者在一个这样的方法里面,可以有多个的可选参数
如果有多个可选参数的话,那么所有的可选参数都必须罗列在最后,也就是说我们
a 是一个必须的参数,如果 b 是 一个可选参数的话,那么
c 也一定是一个可选参数 那么它会必须要依次罗列在所有这样一个的参数列表的最后
不能说是 a 是一个可选的,a 是个必须选的 b
是个可选的,c 又是一个必选的,不允许这样的一个交错的排列的情况发生
那么当然也很好理解,当你有可选 参数的话,你可以省略掉,那么只有是所有的这样的一个
可选参数排列到最后,我们才能够从调用的形式上很清晰的分辨出来哪些是可选参数,否则就- 会乱套了
那么 一般情况下,如果有两个以上的这样的一个可选参数的话,需要让我们再给出来一个
c=1 那么在这样的一个情况下,我如果给了一个
d 给了一个值的话,而 c 使用它的缺省值的话
那么这时候调用会出现一些问题,我们看一下例子 a,
b,那么关于这时候怎么样呢,关于 这时候我们 c
怎么样呢,希望使用这样的一个它的缺省值来进行调用 而这样的一个
d 我们使用 我们这样的一种 Y R 不用它的这样的一个缺省值来进行调用
那么我们看到,这样的一个写法是 不太正确的,不太正确的。
那么中间没有办法这样的一个空这样的一个值 如果你把这个逗号删掉,这也是不太正确的,因为这时候
d 就会默认是这样的一个 这样的一个 c 的这样的一个值 R,而这时候呢第
4 个参数会变成 d,这时候会把这样的一个 char d 转变成这样的一个 c 的值,来进行对它进行调用。
因为这是 d 对应的是 c,而缺省的是第 4 个参数,也就是说传递了
2 个 字符,一个 Y ,一个 R,而没有使用这个 c
这个iii来进行传递 那么所以说,一般情况下,如果你给了某一个这样的一个缺省参数一个
不是没有用它的缺省值的话,那么所有的参数都应该怎么样呢 所有的参数都应该使用
传递正确的值,而不要再怎么样呢,不要再使用它这样的一个缺省值,那么这样就是没有问题的
那么还有一个写法就是什么,就是指定我要传的参数是
d,而不是什么呢,而不是这样的一个
c,那么也可以这样子来做
[无声]
[无声]
我们看到这样的写法怎么样呢,也是可以正确的成立的 也就是说我指定了,注意这两个
d 的区别,前面一个 d 表示的是这个参数 d 后面这个
d 表示的是这个 d 也就是说我指定了这个的 d
值传给这个缺省参数 d 那么这样我就可以不用再提 c 的问题了,c
使用它的这样的默认值 对于这样的一个写法,称之为什么呢,称之为命名参数
称之为命名
那么当然命名参数也可以是怎么样呢,也可以是这样的一个
也可以是这样的一个 iii,比如说直接给出来这样的一个常数型的值
这样怎么样呢,也是正确的写法,这两种写法都是命名参数
那么这也就是关于我们这个参数里面的可选参数 和命名参数的这样的一个说明。
0k!