精华内容
下载资源
问答
  • js函数形参和实参数量可以不一致
    千次阅读
    2020-05-25 11:09:13

    定义一个形参有多个的函数,并且定义传入不同数量的实参时,其中的db.collection(collectionName).find(){}方法中的attr,skipNum和pageSize分别指的是什么

    find(collectionName,json1,json2,json3){
            if(arguments.length==2){
                var attr={};
                var skipNum=0;
                var pageSize=0;
            }else if(arguments.length==3){
                var attr=json2;
                var skipNum=0;
                var pageSize=0;
            }else if(arguments.length==4){
                var attr=json2;
                var page=json3.page||1;
                var pageSize=json3.pageSize||20;
                var skipNum=(page-1)*pageSize;
            }else{
                console.log('传入参数错误');
            }
    	db.collection(collectionName).find(json1,{fields:attr}).skip(skipNum).limit(pageSize);
    }
    

    调用时不同实参可以起到不同的使用find方法

    DB.find('article',{});
    
    DB.find('article',{},{});
    
    DB.find('article',{},{},{page,pageSize});
    
    更多相关内容
  • 在c语言函数中,如果形参实参类型不一致,应该以什么为准呢?
  • function myFunction() { var x=5; return x;...1.实参形参个数可以有偏差,不会因为参数统一而错误。 例1: ? 1 2 3 4 5 6 functionbox(a,b){ 

    function myFunction()
    {
    var x=5;
    return x;
    }
    补充:JS中带返回值的函数,在函数定义时不体现


    //正文

    1.实参与形参个数可以有偏差,不会因为参数不统一而错误。

    例1:

    ?
    1
    2
    3
    4
    5
    6
    functionbox(a,b){                       
         return a + b;
      }
     
      alert(box( 1 , 3 , 5 ));        //运行结果:“4”。
                                //进行的运算为“1+3”,没有用到“5”。

    例2:

    ?
    1
    2
    3
    4
    5
    functionbox(a,b,c){
         return a + b+c;
      }
      alert(box( 1 , '5' ));         //运行结果:15undefined。
                                 //结果为sring类型。进行的运算1与‘5’的字符连接,再与一个不存在(undefined)的字符连接,结果即为15undefined。

    2.JS函数不能重载。

    因为“函数重载”靠的就是相同函数名根据参数的不同,匹配特定函数,从而执行函数的过程;而JS函数不再排斥“异形”函数,缺失了辨别相同函数名的不同函数的过程,相同函数名的情况下,JS调用时,只会执行最后一个所调函数。

    例3:

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function box(a,b,c){
         alert( '执行了第一个函数,' + a + '+' + c + '=' +(a+c));
      }
     
    function box(a,b,c){
         alert( '执行了第二个函数,' + a + '+' + b + '=' +(a+b));
      }               
     
    alert(box( 1 , '5' , 3 ));    //执行结果为:执行了第二个函数,1+5=15
                             //类型为string.               

    例4:

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function box(a,b,c){
         alert( '执行了第二个函数,' + a + '+' + b + '=' +(a+b));
      }
     
    function box(a,b,c){
         alert( '执行了第一个函数,' + a + '+' + c + '=' + (a+c));
      }              
     
    alert(box( 1 , '5' , 3 ));    //执行结果为:执行了第一个函数,1+3=4
                             //类型为number.

    3.函数运用arguments对象,很有特点

    arguments对象的使用,很好地解释了支持形参、实参不一致而不出错的原理性问题。

    3.1 arguments[index]指定参数值,index为参数的索引

    例5:

    ?
    1
    2
    3
    4
    5
    6
    7
    function box(){
         return arguments[ 0 ]+arguments[ 5 ];
    }
     
    alert(box( 1 , 2 , 3 , 4 , 5 , 6 ));                       //执行结果为:7
    alert(box( 'Test' , 'UseCase' , 3 , 4 , 5 , 6 ));          //执行结果为:Test6
                                                    //arguments[0]表示第一个参数,arguments[5]表示第六个参数;上面两个执行结果,都反映了,box()函数只用了所需的指定参数,其他参数都被忽略了。

    3.2 arguments.length得到参数的个数

    例6:

    ?
    1
    2
    3
    4
    5
    6
    7
    function box(){
         return arguments.length;
    }
     
    alert(box( 1 , 2 , 3 , 4 , 5 , 6 ));                      //执行结果为:6
    alert(box( 'Test' , 'UseCase' , 3 , 4 , 5 , 6 ));         //执行结果为:6
                                                   //当需要知道某序列有多少元素时,将其传入该函数,即可知道

    3.3 arguments.length的扩展运用

    例7:

    ?
    1
    2
    3
    function box(){
         var sum = 0 ;
         for (var i= 0 ;i</arguments.length;i++){>

    4.一个显而易见的错误(只为下面说明问题)

    看了例7,可能会有点迷糊,因而添加例8、例9,都说明了一个问题,参数为函数体提供必要信息,用于可控地实现功能。函数(function:功能)

    例8:

    ?
    1
    2
    3
    4
    5
    6
    7
    function box(a,b){
         return a+b+c;
    }
     
    alert(box( 1 , 2 , 3 ));                                       //ReferenceError:c is not defined
    alert(box( 1 , 2 ));                                         //ReferenceError:c is not defined
                                                              //字面量c未定义

    例9:

    ?
    1
    2
    3
    4
    5
    6
    function box(){
         return a+b+c;
    }                          
     
    alert(box( 1 , 2 , 3 ));                                       //ReferenceError:a is not defined
                                                              //字面量a未定义

    简单比较例2、例4、例8,可以得出这样的结论,JS中的函数体与形参、实参以及形参与实参的关系是:

    遵循一个原则:函数实现功能

    函数体与形参关系:形参必须满足函数体的必要需求,否则没法进行,即使用了形参未定义的‘字面量’,出错:c is not defined 。

    形参与实参关系:实参在形参的标尺下,多出的被拦截而被忽略,缺少的被判断为undefined(不存在),但都不报错。

    智能:是说JS函数对多出的实参去粗取精,对少的实参做了适当的处理,没有雷厉加之,使得函数运行更大限度地平稳协调。

    展开全文
  • C语言,函数形参实参个数不一致...这就能解释通为什么形参和实参个数不一致,编译能正常通过的问题了。下面是示例代码。 /*parainput.c 文件内容*/ #include <stdio.h> void sum(int a,int b,int c) { int

    C语言,函数形参与实参个数不一致问题

    ​ 最近阅读工程代码的时候,同一个函数,不同场景调用时,输入的实参个数不一样,但是编译却没有问题。查看函数的定义,相关的C文件里并没有给形参指定默认值,这就很奇怪了。

    ​ 最终,发现在函数相关的头文件里有给形参指定默认值。这就能解释通为什么形参和实参个数不一致,编译能正常通过的问题了。下面是示例代码。

    /*parainput.c 文件内容*/
    
    #include <stdio.h> 
    void sum(int a,int b,int c)
    {
    	int result = a + b + c;
    	printf("result = %d\n",result);	
    } 
    
    /*parainput.h 文件内容*/
    
    #ifndef _PARAINPUT_H
    #define _PARAINPUT_H
    
    void sum(int a,int b=1,int c=2);
    
    #endif
    
    /*main.c 文件内容*/
    #include <stdio.h>
    #include "parainput.h" 
    
    void test_01(void)
    {
    	int a = 10;
    	sum(a);
    	return;
    }
    
    void test_02(void)
    {
    	int a = 10,b = 20;
    	sum(a,b);
    }
    
    void test_03(void)
    {
    	int a = 10,b = 20,c = 30;
    	sum(a,b,c);
    }
    int main(void)
    {
    	test_01();
    	test_02();
    	test_03();
    	
    	return 0; 
    }
    

    **用G++**进行编译,最终运行结果如下。

    result = 13
    result = 32
    result = 60
    
    --------------------------------
    Process exited after 0.006126 seconds with return value 0
    请按任意键继续. . .
    
    展开全文
  • 形参和实参,参数类型转换

    千次阅读 2020-11-23 20:47:06
    形参和实参 形参:形式参数,指的就是方法中定义的参数,是没有具体值的,存在的意义就是告诉调用者想要使用该功能就必须给到相应类型的值。 (例如:一个空位置上写着此处有人,实际上没有人) 实参:实际参数,...

    形参和实参

    形参:形式参数,指的就是方法中定义的参数,是没有具体值的,存在的意义就是告诉调用者想要使用该功能就必须给到相应类型的值。

    (例如:一个空位置上写着此处有人,实际上没有人)

    实参:实际参数,指的是在调用某个方法时,传递的实际的具体的值。

    (例如:想要比较两个数的大小,就要给两个具体的值)

    public static void main(String[] agrs) {
    		Max(5, 6);// 此时括号中的内容为实参 5,6是具体的值 是实参
    		int a = 9; // 给a赋值
    		int b = 3;// 给b赋值
    		Max(a, b); // 此时的a和b是已经有了具体的值,是实参
    		int x = 7; // 给x赋值
    		int y = 8; // 给y赋值
    		Max(x, y); // 此时的x和y已经有了具体的值,是实参
    	}
    
    	/**
    	 * 求两个数的最大值
    	 * 
    	 * @param x 此时定义的参数x为形参 没有具体的值
    	 * @param y 此时定义的参数y为实参 没有具体的值
    	 */
    	public static void Max(int x, int y) {
    		if (x > y) {
    			System.out.println(x);
    		} else {
    			System.out.println(y);
    		}
    	}

    参数类型转换

    小类型转大类型的可以,大类型转小类型需要强制转换,否则编译失败

    小类型转大类型
       public static void main(String[] agrs) {
    		byte a=9;  //定义一个byte类型
    		int  b=7;  //定义一个int类型
    		Max(a,b);  //byte类型给int给类型传值为小转大可以
    	}
    
    	/**
    	 * 求两个数的最大值
    	 * 
    	 * @param x int类型的参数
    	 * @param y int类型的参数
    	 */
    	public static void Max(int x, int y) {
    		if (x > y) {
    			System.out.println(x);
    		} else {
    			System.out.println(y);
    		}
    	}
    -------------------------------------------------------------------------
    大类型转小类型
        public static void main(String[] agrs) {
    		int a = 9; // 定义一个int类型
    		int b = 71; // 定义一个int类型 ,
    		Max((byte) a, (byte) b); // int类型给byte给类型传值为大转小步可以,需要将int类型强制转换成byte类型
    	}
    
    	/**
    	 * 求两个数的最大值
    	 * 
    	 * @param x byte类型的参数
    	 * @param y byte类型的参数
    	 */
    	public static void Max(byte x, byte y) {
    		if (x > y) {
    			System.out.println(x);
    		} else {
    			System.out.println(y);
    		}
    	}

     

    展开全文
  • Java——形参和实参的区别

    千次阅读 2021-02-12 10:03:14
    形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存...
  • C语言的形参和实参个数不一致问题

    万次阅读 2014-12-29 15:51:10
    这带来的一个问题,实参和形参个数不一致,能编译通过,且有些情况没有警告,并且能链接通过,但是运行时会产生严重的运行时错误。 事实上,实参和形参个数不一致的问题,编译器是做了检查的,虽然这个检查机制太...
  • C语言形参和实参的区别(非常详细)

    万次阅读 多人点赞 2019-11-03 17:45:23
    C语言函数的参数会出现在两个地方,分别是函数定义处函数调用处,这两个地方的参数是有区别的。 形参(形式参数) 在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来...
  • 函数形参和实参

    2021-05-13 19:40:56
    C语言函数的参数会出现在两个地方,分别是函数定义处函数调用处,这两个地方的参数是有区别的。...形参和实参的区别联系形参变量只有在函数被调用时才会分配内存,调用结束后,立刻释放内存,所以形参变量
  • 形参和实参的区别

    2021-06-03 09:48:21
    最近在做题的时候被问到了形参和实参的区别,所以在这具体解释一下。 首先什么是形参?什么是实参形参(形式参数) 在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来...
  • 形参和实参

    万次阅读 多人点赞 2018-06-10 11:11:28
    1、概念形参全称为“形式参数”是在定义函数名函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数。形参的作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数功能的因素或者...
  • 如果可以隐式转化,那就是可以,intlong是可以隐式转换的,但int*long*是可以的,所以编译器会报错 如果机器上intlong占的内存大小相同(一般是相同的),那可以采用类型转换(int*)来完成 指针的话,...
  • C++形参实参

    2020-03-07 09:54:25
    函数的参数会出现在两个地方,分别是函数定义处函数调用处,这两个地方的参数是有区别的。形参(形式参数) 在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来的数据,...
  • C语言形参和实参

    2021-10-13 16:24:11
    C语言函数的参数会出现在两个地方,分别是函数定义处函数调用处。 形参的解释 在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来的数据,所以称为形式参数,简称形参...
  • 形参和实参的储存单元是否一致

    千次阅读 2021-11-27 11:21:40
    先引入一个例题: ...如果占用同一片空间的话,编译时候就存在实参形参类型不匹配的报错参数传递中,形参值的改变影响实参的值。 那么就可能会有疑问了 当数组名作为函数的形参是,这个两个.
  • 昨天在Python学习群里有位路人甲问了个Python函数中关于形参和实参一个很基础的问题,虽然很基础,但是对于很多小白来说一定简单,反而会被搞得稀里糊涂。人生苦短,我用Python。为了解答大家的这个疑惑,小编在...
  • 参数中的形参和实参

    2021-12-24 16:26:13
    参数 当遇到确定的值, 就需要抽取成形参, 在调用的时候, 不同数据传进去 ...一般形参和实参一一对应 单个参数 // 单个参数 function sum(a) { // 求和 var s = 0; // 1 + 2 + 3 + 4 + ....
  • C语言函数-形参和实参

    千次阅读 多人点赞 2019-04-29 09:34:34
    1.形参和实参的概念 形参(也叫形式参数) 在定义函数名函数体的时候使用的参数,他没有数据,可以看做一个占位符,只能等到函数被调用时接收传递进来的数据,所以称为形式参数; 实参(也叫实际参数) 在调用时传递给...
  • C语言调用函数时,实参和形参的个数与对应类型应该保持一致,但并不是必须保持一致。 举个简单的例子:定义的形参为int类型,在调用函数传入实参时传入一个float类型的值,则形参把该float自动转为int类型进行操作。...
  • js的函数形参和实参详解

    千次阅读 2020-03-29 12:15:10
    函数参数分为实参和形参形参就是在定义函数时,传递给函数的参数,被称为形参实参就是当函数被调用时,传给函数的参数,称为实参。 【例1】以下示例中,参数ab就是形参,而调用函数中的2,3就是实参。 ...
  • 形参(形式参数) 在函数定义中出现的参数可以看做是一个占位符,它...形参和实参的功能是传递数据,发生函数调用时,实参的值会传递给形参形参和实参的区别联系 1 . 形参变量只有在函数被调用时才会分配内存...
  • JS中形参和实参的区别 from:https://blog.csdn.net/qq_33187168/article/details/50346465 形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则能使用。 实参出现在主调函数中,进入被调函数后,...
  • 形参和实参 C语言函数的参数会出现在两个地方,分别是主函数处自定义函数处。 例如在main函数中声明的变量并使用它进行运算,此处的变量胃实参;在自写函数的传入参数中使用,此类参数只在本函数中有效,因此命名...
  • 因此实参也改变 String以及基本数据类型的装箱类引用类型------形参改变,因实参和形参指向的目标实例对象不一致,因此实参不变 Java的参数传递是值传递,而平常我们在Java中所说的“引用传递”,实际上只是将引用...
  • 方法的形参和实参

    2021-05-06 17:40:06
    而在调用这个方法时,需要调用者提供与原方法定义匹配的参数(类型,数量,顺序都保持一致),这些实际调用时提供的参数,称为实际参数,检测实参。 例如; int max(int num1,int num2) 参数 num1num2为形参。 … int...
  • 实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。 形参(parameter):...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,854
精华内容 14,741
关键字:

形参和实参类型不一致

友情链接: 0807.rar