找回密码
 点一下
查看: 1000|回复: 2

触发器是否可以根据字符串找到变量?

[复制链接]
发表于 2018-12-23 22:48:11 来自手机 | 显示全部楼层 |阅读模式
比如有一个字符串变量a="xxxx 1",单位变量xxxx(1),是否可以用取自a中第一段加第二段字符串来得到变量xxxx(1)然让c等于它?
发表于 2018-12-23 22:55:45 | 显示全部楼层
本帖最后由 花时雨 于 2018-12-23 23:25 编辑

比较笨的办法,无限大的数组,然后你这个问题就解决了
至于数组的重复利用这个就比较麻烦了,这涉及到重建数组的扩容和减容
不过我觉得你的意思应该是想要个哈希表,但是目前我没有发现

简单点说吧

比如 单位名字a1 单位a1
这样的东西可以用两个数组来定义
第一个字符串数组保存单位的名字,索引是他的位置
第二个单位数组用来保存单位的单位值,索引和名字数组保持一致

这两个数组初始只有10的长度。
定义两个动作 添加和删除单位拟,添加需要参数 名称,单位。删除需要名称就可以。
迭代名字数组的元素是否有一个已经存在,比如a1的名字a1已经在数组的第3个,就给他把单位数组里的相同索引的单位给更新了。
如果发现某一个位置不是有效的名字,默认是""的话,就把这个位置的名字和单位数组都存上。
删除就比较简单,把需要删除的名字在名字数组里找到,然后清除这个索引的名字和单位数组的值到默认的。

这里涉及到一个非常操蛋的地方就是,你需要合理考虑数组的容量问题。比如100个虽然可以重复用,但有时效性,所以同时只能存在1000个的情况,
你要么初始有1000个,要么也是没办法。。。或者可以考虑数据表?
主要是他没办法创建新的数组这个比较蛋疼,没试过脚本是不是可以,如果可以就可行,就是达到上限的时候重新创建一个大容量的数组,然后拷贝前边小数组的所有数据过去,在把大数组复制给名字和单位就解决了



BTW,如果考虑到迭代器的性能问题,你可以选择通过哈希算法来用一层多维数组控制“桶”,简单说就是比如a是1维数组的第一个,b是第二个,然后所有名字是a开头的就会都分配到a这个桶里,相对于整个表迭代,
性能会提高很多。假设名字是平均分布的,有100个名字的桶不一样,就可以得到100倍的效率。
回复

使用道具 举报

发表于 2018-12-25 23:59:52 | 显示全部楼层
直观的说,不可以,因为脚本不能比对变量的名字(这样混淆变量名加密才能行得通)。不过你可以用数据表来实现这种功能,比较方便,自己摆弄一下,虽然不一定有多么高级的算法,但能用就行了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-11-23 20:34 , Processed in 0.038794 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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