Fortran Coder

查看: 2358|回复: 7
打印 上一主题 下一主题

[子程序] 可否将字符串作为函数名引用(类似Matlab的eval)

[复制链接]

57

帖子

15

主题

0

精华

熟手

F 币
248 元
贡献
118 点
跳转到指定楼层
楼主
发表于 2023-6-5 09:03:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
比如字符串str="ABC", 就调用函数call ABC有点像matlab里的eval("call ABC")
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

835

帖子

2

主题

0

精华

大宗师

F 币
3926 元
贡献
2334 点
沙发
发表于 2023-6-5 09:10:33 | 只看该作者
元编程,fortran做不到。

57

帖子

15

主题

0

精华

熟手

F 币
248 元
贡献
118 点
板凳
 楼主| 发表于 2023-6-5 09:17:42 | 只看该作者
li913 发表于 2023-6-5 09:10
元编程,fortran做不到。

把函数名作为参数传递呢

57

帖子

15

主题

0

精华

熟手

F 币
248 元
贡献
118 点
地板
 楼主| 发表于 2023-6-5 09:22:23 | 只看该作者
li913 发表于 2023-6-5 09:10
元编程,fortran做不到。

VB6本质也是编译语言,不是解释语言,但可以通过API执行一个字符串

835

帖子

2

主题

0

精华

大宗师

F 币
3926 元
贡献
2334 点
5#
发表于 2023-6-5 11:26:19 | 只看该作者
cqflhl 发表于 2023-6-5 09:17
把函数名作为参数传递呢

函数可以传递,跟普通参数传递一样,而不是以字符串形式。

835

帖子

2

主题

0

精华

大宗师

F 币
3926 元
贡献
2334 点
6#
发表于 2023-6-5 11:27:11 | 只看该作者
cqflhl 发表于 2023-6-5 09:22
VB6本质也是编译语言,不是解释语言,但可以通过API执行一个字符串

调用 system 的 cmd吗?

147

帖子

42

主题

1

精华

宗师

F 币
1294 元
贡献
630 点
7#
发表于 2023-6-5 12:48:20 | 只看该作者
过程指针根据字符串不同选择不同指向

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1641 元
贡献
709 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

8#
发表于 2023-6-5 15:34:48 | 只看该作者
有一个投机的方法可以实现,很多软件实现的插件功能,就是这种思想。

写一个 abc.dll ,其中实现一个函数,比如叫 subroutine execute()
有其他的需要的话,就写 abd.dll , abe.dll , abf.dll ,他们都实现相同的函数 比如 subroutine execute()

然后你可以根据这个字符串,比如 strFunc = "abc" , 去加载 strFunc //".dll",然后调用它实现的 execute
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-12-23 21:29

Powered by Tencent X3.4

© 2013-2024 Tencent

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