TC官方合作论坛

标题: 帮助文件里对局部变量的一个解释不明白 [打印本页]

作者: zhenyun888    时间: 2013-9-8 22:53
标题: 帮助文件里对局部变量的一个解释不明白
空间 测试
功能 局部变量演示1()
  如果(真)
    变量 名称="张三"
    辅助.消息框(名称) // 1 正确
  否则
    变量 名称="李四"
    辅助.消息框(名称)// 2 正确
  如果结束
  循环(真)
    辅助.消息框(名称)// 3 报错
  循环结束
  辅助.消息框(名称)// 4 报错
功能结束

功能 局部变量演示2()
如果(真)
  变量 名称="张三"
  如果(真)
    辅助.消息框(名称) // 1 正确
  否则
    辅助.消息框(名称)// 2 正确
  如果结束
如果结束
  循环(真)
    辅助.消息框(名称)// 3 报错
  循环结束
  辅助.消息框(名称)// 4正确
功能结束

空间结束

倒数第三行“辅助.消息框(名称)// 4正确 ”我认为是错误的,谁可以给解析一下,?谢谢
作者: zhenyun888    时间: 2013-9-8 22:55
局部变量:局部变量定义在功能里面,那么它的作用域就被限制在功能里,不能跨功能调用局部变量在功能与流程语句之间定义的变量,整个功能里都可以使用,但是在流程语句里定义的变量就只能在流程语句使用,不能在流程语句之外使用,也不能跨流程语句使用,除非调用的流程语句是嵌套在变量定义的流程语句里局部变量离开自己的作用域之后,变量里的所有内容都会被TC释放掉的如果想让这个局部变量值在其他地方可以使用,可以采用赋值给全局变量或者是作为功能的返回值返回调用者
   这是局部变量的定义,  这个局部变量在预聚体中,倒数第三行怎么可以使用呢??
作者: 1106752189    时间: 2013-9-9 00:00
4是错误呀   你没测试好
作者: dongyijun1979    时间: 2013-9-9 00:26
你的想法是正确的,这是帮助文档的错误。其实帮助文档中的错误绝不止你发现的那一个。呵呵
作者: dongyijun1979    时间: 2013-9-9 00:29
msdn都有错误呢?这其实很正常。文档都是人编写的嘛,又不能调试。
作者: jimye0526    时间: 2013-9-9 09:14
变量不要在那些流程控制块中定义  比如 如果  循环 遍历啊, 谁知道你的代码执行会不会进入这个块里 进行定义操作, 而且TC编译时语法检测时也有个规则,流程块内定义的变量,流程块外使用应该不可能编译过去的,因为不确定你的代码是否会进入这个流程块内进行变量定义啊。

还有对于2楼的回答有点问题,局部变量就是局部变量,没什么再分流程块中还是流程块外的,你定义在流程块中,只能说你的脚本架构混乱,甚至可以说就是你语法问题,之所以块内定义,块内可以用,是tc的编译器知道你在块内进行定义操作,所以在这个块内使用,这个变量时一定存在的,所以不会报错

作者: zhenyun888    时间: 2013-9-9 10:35
谢谢大家的解析
作者: a8461959    时间: 2013-9-9 16:19
哦,已经解决了




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1