weixing1531 发表于 5 天前

prefix关键字解决命名冲突

本帖最后由 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 *

楚香饭 发表于 5 天前

用 type 捆绑过程呗
type(T_name) :: aa , bb , cc
call aa%method_1()
call bb%method_2()

weixing1531 发表于 5 天前

楚香饭 发表于 2025-4-22 10:30
用 type 捆绑过程呗
type(T_name) :: aa , bb , cc
call aa%method_1()


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

楚香饭 发表于 5 天前

weixing1531 发表于 2025-4-22 10:52
你这个是静态方法nopass做法
实例方法需要绑定
模块方法没必要绑定吧

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

weixing1531 发表于 5 天前

本帖最后由 weixing1531 于 2025-4-22 16:25 编辑

楚香饭 发表于 2025-4-22 13:20
模块方法没法绑定。
所以不写public的模块方法,所有公开的函数都绑定到派生类型上。
即便这个派生类型是 ...
Type封装后不会影响效率吗?

weixing1531 发表于 5 天前

如果支持类型名访问nopass就好了
Type(TypeName)::ObjectName
Now:
ObjectName%NoPassMethod()

I need:
TypeName%NoPassMethod()
页: [1]
查看完整版本: prefix关键字解决命名冲突