乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 113|回复: 4

[编程交流] Sub-R中的变量本地化

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:24:46 | 显示全部楼层 |阅读模式
大家好,
 
很抱歉,今天我创建了太多的线程,但我突然有大量的问题,如果得到回答,将填补我的LISP知识中的各种漏洞。
 
我的问题是:
 
如果我有一个子例程,比如说创建一个列表,我将列表设置为一个变量,比如“a”,我是否在子程序中定位这个变量,如果我这样做,它在主例程中是否仍然可用?
 

 
  1. (defun c:test ()
  2.    (testa)
  3.    (alert a)
  4.    (princ)
  5. ) ;_  end defun
  6. (defun testa (/ [b][color=Red]a[/color][/b])
  7.    (setq a (getstring t))
  8. ) ;_  end defun

 
我应该本地化突出显示的变量吗?如果我这样做了,我还能在主例程中使用它吗?
 
此外,我是否也应该在主例程中对其进行本地化?
回复

使用道具 举报

2

主题

439

帖子

536

银币

限制会员

铜币
-14
发表于 2022-7-6 15:53:13 | 显示全部楼层
  1. (defun c:test2 (/ b)
  2. (setq b(testa))
  3.    (alert b)
  4.    (princ)
  5. ) ;_  end defun

 

 
  1. (defun c:test3 ()
  2.    (alert(testa))
  3.    (princ)
  4. ) ;_  end defun
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:56:50 | 显示全部楼层
谢谢你的帮助,阿斯米,这是一个有点工作周围,并工作得很好。
 
经过一点实验,我发现如果你有一个子例程,其中包含一些变量,然后在主例程中使用,那么这些变量应该在主例程中定位,而不是在子例程中,以便它们保持其值。
 
否则,它们的值在子程序完成后设置为零。
回复

使用道具 举报

2

主题

439

帖子

536

银币

限制会员

铜币
-14
发表于 2022-7-6 16:19:17 | 显示全部楼层
 
对将子函数放在主函数中,使其成为局部函数(以便LISP正确地说出函数)。
 
  1. (defun c:mainfun(/ [color="SeaGreen"][b]a[/b][/color])
  2. (defun subfun()
  3.    (setq [color="SeaGreen"][b]a[/b][/color] ...)
  4. ); end subfun
  5. ...
  6. (princ)
  7. ); end c:maifun
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 16:25:11 | 显示全部楼层
 
 
哈哈,我真的得学Lisp程序的行话了
 
 
谢谢阿斯米,一如既往地感谢你的帮助
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-4 19:03 , Processed in 0.538101 second(s), 62 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表