谈下function和method在内嵌与外部传参的区别
1、内嵌函数(Internal Functions)
看下现在输出&x的话会返回什么值?
2、内嵌函数(Internal Functions)
看下现在输出&x的话会返回什么值?
3、外部引用函数(External Functions)
看下现在输出&x的话会返回什么值?
4、字段类(Field Class)
看下&f.value和&g.value返回什么值?
5、原始类型(Primitives)
看下&a和&b的值?
6、App classes
看下&p的值?
7、App classes
看下&r返回的值?
是不是有点懵,写了几年的peoplecode如果不真理解,还真就稀里糊涂的继续用。
下面公布答案及解释。
1、变量在本地内部参数之间传递的是引用,也就是说&x和&n指向的是同一个变量。所以&x = 2
2、变量在本地内部参数之间传递的是引用,&x存在于函数的外部和内部,在调用函数的时候,&n指向了&x,所以&n=2执行的时候,&x=2,后一句&x=4 变量&x又被赋值为4所以最后输出&x=4。
3、变量在外部函数中传递的是引用,&x的赋值只在函数本地有效,也就是外部的&x与函数中的&x是两个变量。所以&x=2。
4、对象在被赋值时候,传递的是引用。所以&g和&f都指向同一个值。&f.value="g" &g.value="g";
5、原始类型赋值,传递的就是值。所以&a="a";&b="b";
6、原始类型在类中传递的是值。所以&p = 1;
7、对象在类中传递的是引用。所以&r="xyz";
关注我的公众号: