2016-09-27 122 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