2016-09-27 120 views
0

我是tcl的新手,并试图扩展其中一个现有的软件包。Tcl:在较高版本的软件包中使用较低版本的软件包

package provide trial 1.0 

namespace eval ::trial { 
    namespace export create delete 
} 

proc ::trial::create { arg1 arg2 } { 
    .... 
} 

proc ::trial::delete { arg1 } { 
    .... 
} 

我想写封装试验2.0,它可以添加一个更多的过程状态。我怎样才能做到这一点?我怎样才能重载创建过程并调用版本1.0创建过程?

在此先感谢。

回答

0

每个解释器最多只需致电package provide即可获得指定包装。可以制作一个pkgIndex.tcl来描述如何提供同一个软件包的多个版本,但这不是一件常见的事情。如果没有这些,你就会遇到这样的问题:你不能真正安全地引用另一个版本的包的实现,因为你不知道它将被安装在完全相同的地方。

相反,通常只是复制代码,然后才进行修改。试图避免重复一个或两个相当小的文件通常比它值得的更麻烦!

作为规程,只需添加另一个命令通常将只是理由去从1.01.1,不去2.0,因为这只是预计的老接口的代码很可能会做工精细的更新版本。但是这取决于添加是否在语义上是兼容的,并且通常很难让代码适合你,因为它实际上取决于调用编排模式,并且这可能是不重要的计算(尽管通常容易例)。

+0

谢谢唐纳:) – Nand28