Fortran Coder

查看: 74|回复: 5
打印 上一主题 下一主题

[讨论] prefix关键字解决命名冲突

[复制链接]

156

帖子

45

主题

1

精华

宗师

F 币
1365 元
贡献
649 点
跳转到指定楼层
楼主
发表于 前天 10:06 来自移动端 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 weixing1531 于 2025-4-22 12:01 编辑

目前靠=>改名太麻烦了

use modA,only:sub1
use,prefix::modB

call sub1()
call modB.sub1()

希望新的fortran标准加入prefix关键字和.操作符
实现python类似功能
import modB
modB.sub1

注意:Fortran中use modB等价于Python中from modB import *
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

742

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
726 元
贡献
371 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

沙发
发表于 前天 10:30 | 只看该作者
用 type 捆绑过程呗
type(T_name) :: aa , bb , cc
call aa%method_1()
call bb%method_2()

156

帖子

45

主题

1

精华

宗师

F 币
1365 元
贡献
649 点
板凳
 楼主| 发表于 前天 10:52 | 只看该作者
楚香饭 发表于 2025-4-22 10:30
用 type 捆绑过程呗
type(T_name) :: aa , bb , cc
call aa%method_1()

你这个是静态方法nopass做法
实例方法需要绑定
模块方法没必要绑定吧

742

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
726 元
贡献
371 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

地板
发表于 前天 13:20 | 只看该作者
weixing1531 发表于 2025-4-22 10:52
你这个是静态方法nopass做法
实例方法需要绑定
模块方法没必要绑定吧

模块方法没法绑定。
所以不写public的模块方法,所有公开的函数都绑定到派生类型上。
即便这个派生类型是空的

156

帖子

45

主题

1

精华

宗师

F 币
1365 元
贡献
649 点
5#
 楼主| 发表于 前天 15:50 | 只看该作者
本帖最后由 weixing1531 于 2025-4-22 16:25 编辑
楚香饭 发表于 2025-4-22 13:20
模块方法没法绑定。
所以不写public的模块方法,所有公开的函数都绑定到派生类型上。
即便这个派生类型是 ...

Type封装后不会影响效率吗?

Screenshot_20250422_162316_com.tencent.mm.jpg (461.61 KB, 下载次数: 1)

Screenshot_20250422_162316_com.tencent.mm.jpg

156

帖子

45

主题

1

精华

宗师

F 币
1365 元
贡献
649 点
6#
 楼主| 发表于 前天 17:04 | 只看该作者
如果支持类型名访问nopass就好了
Type(TypeName)::ObjectName
Now:
ObjectName%NoPassMethod()

I need:
TypeName%NoPassMethod()
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2025-4-24 10:59

Powered by Tencent X3.4

© 2013-2025 Tencent

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