在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 353|回复: 5

[求助] 怎么把字符串变量变成可执行的语句

[复制链接]
发表于 2024-1-17 16:31:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 ttw45666 于 2024-1-17 17:17 编辑

字符串变量引号里是要执行的语句怎么办,有这个字符串变量。


比如skill脚本里面有,"x=1"这个变量
该怎么通过那个变量得到x=1这个语句

这个问题的来源是这样的,写了个脚本,这个脚本要接受的变量本身就是一个要执行的函数。但是,想让它在脚本里面执行,不是执行完以后的值当做脚本的变量。
于是想到了先把语句变成字符串这个方法,但是这个方法我觉得并不好。。

IMG_20240117_170822.png





想实现的效果就是我在ciw输入
conditionllyChoose(obj~>cellName=="AAA")
不一定是cellName,而是想任意输入




发表于 2024-1-17 17:06:42 | 显示全部楼层
evalstring函数提供将字符串解析为表达式,将字符串放到这个函数就可以
 楼主| 发表于 2024-1-17 17:13:57 | 显示全部楼层


飞翔的鸟 发表于 2024-1-17 17:06
evalstring函数提供将字符串解析为表达式,将字符串放到这个函数就可以


感谢大佬,这已经很好地解决我的问题了。
我又更新了一下问题,您能看看对于这个有什么更好的建议吗。

 楼主| 发表于 2024-1-17 17:16:22 | 显示全部楼层


飞翔的鸟 发表于 2024-1-17 17:06
evalstring函数提供将字符串解析为表达式,将字符串放到这个函数就可以


最后一行被水印挡住了,被挡住的地方是obj~>cellName=="AAA"
发表于 2024-1-17 19:43:56 | 显示全部楼层


ttw45666 发表于 2024-1-17 17:16
最后一行被水印挡住了,被挡住的地方是obj~>cellName=="AAA"


应该还是evalstring,不过你这里需要注意,传进来的obj你需要已经定义好这个变量了,确定你函数所在的作用域有obj,要不然解析字符串时候会找不到obj
 楼主| 发表于 2024-1-18 09:11:26 来自手机 | 显示全部楼层


飞翔的鸟 发表于 2024-1-17 19:43
应该还是evalstring,不过你这里需要注意,传进来的obj你需要已经定义好这个变量了,确定你函数所在的作 ...


emmm,这样是不行的,如果一个函数填入的参数是一个语句的话,可能是,他会直接计算出这个语句的执行结果。比如想把一个图像化界面的语句传递到脚本里,实际上他把这个语句的执行结果(t/nil)传递到函数里了。
把这个语句先转化成字符串传递进去,再用evalstring去读取是可以的。
只不过输入过程会麻烦。语句开头和结尾要加上双引号,语句内部的双引号需要用反斜杠\转义掉。
我也想不到更好的办法了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-6 01:47 , Processed in 0.027392 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表