我是个新手,从一个C++背景开始,我真的很想知道是否有可能实现这样的目标。假设我有一个数学库,我想让一个名称空间成为另一个名称空间的子空间,就像这样。
我想这样称呼我的代码;
math.matrix.CreateTranslation(mat4, 30, 50, 0)在围棋中是否有办法实现这种行为?
发布于 2022-02-13 11:57:17
在围棋中是否有办法实现这种行为?
不,不是真的。
您可以导入"module/math",然后执行math.SomeFunc。或者您可以导入"module/math/matrix",然后执行matrix.SomeOtherFunc。这些被称为“合格标识符”。
但是您不能导入"module/math"或"module/math/matrix",然后使用嵌套的“限定标识符”la math.matrix.SomeOtherFunc。它只是不属于等级库的一部分。
从技术上讲,可以做到以下几点:
math.Matrix.CreateTranslation(mat4, 30, 50, 0)其中,Matrix是math包中的导出变量,其类型要么在其方法集中有CreateTranslation方法,要么其类型是具有名为CreateTranslation的函数字段的结构类型。
虽然有可能,但很明显,这将是试图在不支持该模式的语言上强制使用组织模式。
https://stackoverflow.com/questions/71100293
复制相似问题