< 返回版块

shanqiang0304 发表于 2020-12-31 10:05

Tags:rust,函数,反射

例子: js中比如eval("var fn=function(){alert('haha');}"); 比如java 的字节码技术

评论区

写评论
onesea 2021-01-20 00:34

c语言可以调用编译器生成动态库.so,然后加载该so即可

github.com/shanliu/lsys 2021-01-16 15:29

把编译器嵌套到你程序你 你程序里编译完在调用 不过第一次会非常慢 哈哈

yuchunzhou 2021-01-03 21:21

参考C语言,你觉得C语言可以动态创建函数么?明显不行,其实,可以用Macro解决你遇到的问题,C语言的宏也可以用来做类似的事情,当然,Rust和C语言的宏最终也还是在编译时“创建”了。

lithbitren 2021-01-02 11:55

原生rust并不能动态创建函数,可以考虑嵌入一个解释器,不过目前似乎找到的都是玩具解释器,可以实现JIT更是连demo都不好找。 js: https://github.com/boa-dev/boa py: https://github.com/RustPython/RustPython

any35 2020-12-31 16:12

可以用WASM, 动态生成动态执行.

uno 2020-12-31 16:09

想玩可以嵌入一些解析程序,同样能实现运行时传入自定义代码的效果

作者 shanqiang0304 2020-12-31 14:59

哦哦

--
👇
jonirrings: rust是aot语言,不是js那种aot、jit、脚本解释型混合的,做不到啦。 能在运行时创建函数的,必须要有后两种特征。

jonirrings 2020-12-31 14:39

rust是aot语言,不是js那种aot、jit、脚本解释型混合的,做不到啦。 能在运行时创建函数的,必须要有后两种特征。

zx950921 2020-12-31 10:59

https://github.com/reitermarkus/cargo-eval https://github.com/DanielKeep/cargo-script

作者 shanqiang0304 2020-12-31 10:15

闭包也不是动态的啊,我的意思就是运行时我读一个文件根据文件的内容创建函数;

--
👇
jmjoy: 不就是闭包?

langzi.me 2020-12-31 10:13

不是闭包。 就是字符串转成函数。

jmjoy 2020-12-31 10:07

不就是闭包?

1 共 12 条评论, 1 页