赖赖旺 发表于 2014-1-16 16:16:13

关于子函数的返回值

子函数的返回值,我有点不明白是怎么返回的
比如我做一个读取几行数据并对数据进行一些操作的子函数,我需要返回操作完成的数据,应该怎么定义呢
还没入门,各种障碍,哪位大侠给个例子呗,就开头和结尾就行,我也体会下

ll_j 发表于 2014-1-16 16:56:24

返回值就是一个函数运行的最后结果,把这个结果用setq“回收”一下即可,比如你定义一个函数fun,函数有参数x,则调用函数fun时返回值用(setq y (fun x))即得到函数fun的返回值。

edata 发表于 2014-1-16 17:43:29

(defun c:main(/ a b c)
(setq a 1 b 2 c 3)
(setq addresult(sub_add a b c));调用子函数并将结果赋值给addresult
(setq decresult(sub_dec a b c));调用子函数并将结果赋值给decresult
(princ addresult)
(princ"\n")
(princ decresult)
(princ)
)
(defun sub_add(a b c);子函数1
(+ a b c);对abc求值后会返回最后结果
)
(defun sub_dec(x y z / result);子函数2
(setq result (- x y z));对xyz求值后会赋值给变量result
result ;执行变量 将返回该变量的值
)

赖赖旺 发表于 2014-1-17 09:23:54

edata 发表于 2014-1-16 17:43 static/image/common/back.gif


谢谢!好好体会下

赖赖旺 发表于 2014-1-17 09:25:16

ll_j 发表于 2014-1-16 16:56 static/image/common/back.gif
返回值就是一个函数运行的最后结果,把这个结果用setq“回收”一下即可,比如你定义一个函数fun,函数有参数 ...

返回的就是子程序的最后一个运算值呗!是这样吧

自贡黄明儒 发表于 2014-1-17 09:30:49

赖赖旺 发表于 2014-1-17 09:25 static/image/common/back.gif
返回的就是子程序的最后一个运算值呗!是这样吧

正是。如(setq a 8 b 5)=>返回5

312735894 发表于 2014-1-21 22:17:55

建议参考沙发上那位大大的“函数赋值与定义”那篇帖子!

lostbalance 发表于 2014-1-22 07:46:32

对于特定的子函数,可以考虑直接处理主函数的参数,就不用管返回值了

bzhjl 发表于 2014-1-22 10:26:20

edata 发表于 2014-1-16 17:43 static/image/common/back.gif


谢谢指点~!
页: [1]
查看完整版本: 关于子函数的返回值