1
我正在尋找使用InterSystems提供的Callin API來創建應用程序,但我需要使用的一些現有M代碼依賴於假定的變量。如何使用Callin API使用假定變量?
如何向我打電話的標籤提供這種狀態?
(需要注意的是,如果我添加變量作爲正式的參數,它會得到new
「d和其他標籤將停止工作。)
我想建立一個制度,我可以插入在另一種語言代碼潛在 '夾持' 由M代碼:
s assumed="variable"
s x=$$DoSomethingFunky("FunctionName","arg1","arg2","arg3")
; some other file that's being executed by my Callin API program
FunctionName(a1, a2, a3) -> ", ".join(a1, a2, a3, assumed, DoSomethingFunkier(a2))
; back to M
DoSomethingFunkier(param1) q "(hello, "_param1_" and "_assumed_")"
所以x
上面會"arg1, arg2, arg3, variable, (hello, arg2 and variable)"
。
我正在尋找一種方法來傳遞assumed
變量的值。
我加了一個例子。我應該注意到,我沒有以任何身份使用ObjectScript。 –
不過,我不確定DoSomethingFunky是什麼樣的。它應該在同一例程中具有「s x = $$ DoSomethingFunky()」的子例程。相比之下,DoSomethingFunkier看起來像它將用作子例程而不是函數。這意味着退出後的值將在退出時完全沒有任何影響。 您的代碼看起來是要這樣的: ðDoSomethingFunkier(A2) 您可能需要做這樣的事情,而不是 DoSomethingFunkier(參數1)問: ðDoSomethingFunkier(A2,.as1) DoSomethingFunkier(參數1,假定) 假設=「東西」 這將設置.as1假定參考 –
我很清楚通過引用傳遞變量:-)在完全公開的情況下,我創建了一個M語言的編譯後擴展來支持編寫的程序用另一種語言 - 既沒有也不需要傳遞參考的概念。 (回想起來,把'DoSomethingFunky'稱爲''o'''這樣的一個內在*函數更有意義。)事實是,我仍然無法訪問外語中的'as1'的值。這是問題的關鍵。 –