以文本方式查看主题 - 搭建论坛 (http://bbs.diylsoft.com:8118/starforum/index.asp) -- 用户咨询 (http://bbs.diylsoft.com:8118/starforum/list.asp?boardid=4) ---- [讨论]堆栈”数据控制 构件 (http://bbs.diylsoft.com:8118/starforum/dispbbs.asp?boardid=4&id=30399) |
||||
-- 作者:从头再来 -- 发布时间:2010-8-1 11:11:25 -- [讨论]堆栈”数据控制 构件 请教“堆栈”数据控制 构件 如何使用,在什么情况下才使用,O(∩_∩)O谢谢 |
||||
-- 作者:dbs -- 发布时间:2010-8-1 11:47:13 -- 先进后出,实际应用的不多;很多递归操作 可能用到。 |
||||
-- 作者:从头再来 -- 发布时间:2010-8-1 19:36:47 -- 谢谢回答,不过还是不明白 |
||||
-- 作者:引力波 -- 发布时间:2010-8-1 21:53:08 -- 在某种意义上讲,"堆栈"构件就是一个缓存器,把需要处理数据一个一个的"推入"堆栈中,在需要使用的时候再一个一个的"弹出"来,规则就是先进后出,很容易理解和应用.
|
||||
-- 作者:wbl051 -- 发布时间:2010-8-2 10:48:47 -- 这个主要用在哪方面 |
||||
-- 作者:从头再来 -- 发布时间:2010-8-2 12:16:50 -- 谢谢引兄:有点明白了 |
||||
-- 作者:玩脑者 -- 发布时间:2010-8-2 15:45:06 -- 其实,你只要明白搭建的“代码”工作原理,你就明白“堆栈”是怎么回事了。 |
||||
-- 作者:从头再来 -- 发布时间:2010-8-2 19:25:41 -- 以下是引用玩脑者在2010-8-2 15:45:06的发言:
其实,你只要明白搭建的“代码”工作原理,你就明白“堆栈”是怎么回事了。 尽管我已经使用星有2年了,其实还是似懂非懂,准确的说:我只会做软件,至于原理就有点不好意思,我知道代码肯定是从上至下,从头到位执行,嘿嘿,就这么多 |
||||
-- 作者:玩脑者 -- 发布时间:2010-8-2 23:46:47 -- 例一: 参数> 自定义.数字:"1" ------ 选择菜单中的“调试运行当前项目” 选择“单步”运行 在项目跟踪窗口中,可以看到,右边是你写的代码,左边是对应的值,左边那个值就是放在了“堆栈”里。这种效果你在“编译执行”的开发工具中是看不到的。 --------执行---------- 1 //第一行代码值 1 //第二行代码值 2 //第三行代码值,即1+1的结果 堆栈清空 //这里因为赋值给了普通按钮的标题,所以清空了堆栈,如果不清空上面的值会传递给下要执行的方法。
或者说,在搭建中,在参数没有遇到“赋值”命令,或“带有参数的方法”命令时,是不会清空堆栈里的内容的。 同样是上面的代码: 参数> 自定义.数字:"1" 参数> 自定义.数字:"1" ------------- 我们再看,上面的代码就出错了,在堆栈中还会留有一个值,即:1 因为这个值没有参与运算,也没有相应的命令来接收,所以执行完上面的代码后在堆栈中还会留有“1”这个值。
例二: 参数> 自定义.数字:"1" 看上面的代码,这里就体现了堆栈的“先进后出”原理 返回的结果为: 行编辑1.属性:(当前编辑内容) 被赋值为:5 原代码还可以写成: 参数> 自定义.数字:"1" 设置> 窗口1.行编辑5.属性:(当前编辑内容) 设置> 窗口1.行编辑4.属性:(当前编辑内容) 设置> 窗口1.行编辑3.属性:(当前编辑内容) 设置> 窗口1.行编辑2.属性:(当前编辑内容) 在搭建里最容易出错的就是“连接以上字符串”这个命令 如果在写参数时,不小心或使用多个判断后,使用“连接以上字符串”这个命令,就容易出现错误。 因为“连接以上字符串”这个命令,是把堆栈中所有没有参与运算或被接收的值连接到一起。 另外,你说的“我知道代码肯定是从上至下,从头到位执行,”这种方式只是在“解释执行”中才是这样的,“编译执行”不是这样的。 解释执行,不生成目标程序,每次执行一段代码都要重新解释。相当于翻译,你说一句我翻译一句,你又重复了同样的话,我就要再重复翻译一遍。 编译执行,编译时已经将源代码生成目标语言,之后通过连接程序连接到生成的目标程序进行执行。
所以,解释执行的效率会彽于编译执行。
|
||||
-- 作者:development -- 发布时间:2010-8-3 0:01:54 -- 楼上讲的很深刻,也很经典,参考学习。 |