由买买提看人间百态

topics

全部话题 - 话题: func3
(共0页)
z****e
发帖数: 54598
1
来自主题: Programming版 - 1st class citizen
举个例子,一个obj,三个func1,func2,func3
顺序执行func1, func2, func3
有下面两种方式书写,你觉得哪种好?
第一种
obj.func1().func2().func3();
优化一下,根据.做换行
obj.func1()
.func2()
.func3();
第二种
func3(func2(func1(obj)));
优化下,缩进,换行
func3(
func2(
func1(obj)));
哪种更好?
X****r
发帖数: 3557
2
来自主题: Programming版 - 也问个二维数组的函数传递问题
这几个函数各不相同。1的参数是对3x4的二维int数组的引用,2的参数是
指向3x4的二维int数组的指针,而3的参数是对长度为4的一维数组的指针,
因为函数形参出现T[]类型的时候会作为T*来处理。见C++ 2003 8.3.5
3. ... After determining the type of each parameter,
any parameter of type “array of T” or “function
returning T” is adjusted to be “pointer to T” or
“pointer to function returning T,” respectively.
比如
void func1(int (&array)[3][4]) {}
void func2(int (*array)[3][4]) {}
void func3(int array[3][4]) {}
int main() {
int array[3][4];
func1(array);
func2(&array);
func3(a... 阅读全帖
a****l
发帖数: 8211
3
来自主题: Programming版 - 大家觉得这样的code怎么样?
我也就写pseudo code 了:
int data;
main()
{ func1(10);
func2(20);
func3(30);
}
func1(int a) { data = a + 1;}
func2(int a) { data = a + 5;}
func3(int a) { data = a - 5;}
大家觉得这样的C程序写的怎么样?
z****e
发帖数: 54598
4
来自主题: Programming版 - oop还是跟fp是对立的
不是
我的意思是在这个时候,fp应该能够体现出比oop更为高效的地方才对
比如
func1(MyObject obj)
func2(MyObject obj)
func3(MyObject obj)
func4(MyObject obj)
func5(MyObject obj)
func6(MyObject obj)
...
这个时候,因为MyObject结构都是一样的
所以就很容易叠加各种函数
以及对函数做归类,整理,都很容易
但是如果这个时候MyObject的结构改变了
那你就得对这一通函数一顿改
麻烦死你,而且最痛苦的是
这些func可能放在不同的地方,那找起来就麻烦了
所以要控制数据结构数量
最好都是map&list,这样基本上没啥好改的
如果是oop
那是这样
MyObj1.func1
MyObj1.func2
MyObj2.func2
MyObj3.func3
...
本身func不是1st class,所以从属于object
而改动其中一个obj,不会影响到其他obj,所以加减obj就很容易
也很自然,你要改其中任何一个obj的结构也相对容易
尤其是如果这个obj的方法只... 阅读全帖
h*i
发帖数: 3446
5
来自主题: Programming版 - 1st class citizen
第三种:
-> obj
func1()
func2()
func3();
和第一种看上去一样。所以这些都是表面的东西。
第一种只能mutate obj, 不灵活。而第二第三可以mutate,也可以不mutate。
z****e
发帖数: 54598
6
来自主题: Programming版 - 1st class citizen
直接返回this就好了
第二种本质上是
Util.func3(Util.func2(Util.func1(obj)));
所以说oop其实就是func的name space
就这个意思,但是一般oop程序员不会写成这样
fp写成这样的太多了,随便找
d****n
发帖数: 1637
7
来自主题: Programming版 - 1st class citizen
楼主说
“举个例子,一个obj,三个func1,func2,func3”
我理解obj就不是fp,对么?
(共0页)