明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1421|回复: 8

[已解答] 关于子函数的返回值

[复制链接]
发表于 2014-1-16 16:16 | 显示全部楼层 |阅读模式
子函数的返回值,我有点不明白是怎么返回的
比如我做一个读取几行数据并对数据进行一些操作的子函数,我需要返回操作完成的数据,应该怎么定义呢
还没入门,各种障碍,哪位大侠给个例子呗,就开头和结尾就行,我也体会下

点评

如果返回的是多个数值或数值个数不定,可以用表的方式返回。  发表于 2014-1-17 08:17
发表于 2014-1-16 16:56 | 显示全部楼层
返回值就是一个函数运行的最后结果,把这个结果用setq“回收”一下即可,比如你定义一个函数fun,函数有参数x,则调用函数fun时返回值用(setq y (fun x))即得到函数fun的返回值。
发表于 2014-1-16 17:43 | 显示全部楼层
  1. (defun c:main(/ a b c)
  2.   (setq a 1 b 2 c 3)
  3.   (setq addresult(sub_add a b c));调用子函数并将结果赋值给addresult
  4.   (setq decresult(sub_dec a b c));调用子函数并将结果赋值给decresult
  5.   (princ addresult)
  6.   (princ"\n")
  7.   (princ decresult)
  8.   (princ)
  9.   )
  10. (defun sub_add(a b c);子函数1
  11.   (+ a b c);对abc求值后会返回最后结果
  12.   )
  13. (defun sub_dec(x y z / result);子函数2
  14.   (setq result (- x y z));对xyz求值后会赋值给变量result
  15.   result ;执行变量 将返回该变量的值
  16.   )
 楼主| 发表于 2014-1-17 09:23 | 显示全部楼层
edata 发表于 2014-1-16 17:43

谢谢!好好体会下
 楼主| 发表于 2014-1-17 09:25 | 显示全部楼层
ll_j 发表于 2014-1-16 16:56
返回值就是一个函数运行的最后结果,把这个结果用setq“回收”一下即可,比如你定义一个函数fun,函数有参数 ...

返回的就是子程序的最后一个运算值呗!是这样吧
发表于 2014-1-17 09:30 | 显示全部楼层
赖赖旺 发表于 2014-1-17 09:25
返回的就是子程序的最后一个运算值呗!是这样吧

正是。如(setq a 8 b 5)=>返回5
发表于 2014-1-21 22:17 | 显示全部楼层
建议参考沙发上那位大大的“函数赋值与定义”那篇帖子!
发表于 2014-1-22 07:46 | 显示全部楼层
对于特定的子函数,可以考虑直接处理主函数的参数,就不用管返回值了
发表于 2014-1-22 10:26 | 显示全部楼层
edata 发表于 2014-1-16 17:43

谢谢指点~!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-20 01:50 , Processed in 0.244819 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表