希望這是連貫的,雖然是longwinded。在F#中使用屬性
我想創建一個.fs
文件的屬性,我可以從一個單獨的.fs
文件中設置,然後使用該值的一個模塊中的第一個.fs
文件...例如,
在我的第一文件function.fs
,我想定義一個屬性theta
。
話,我想在定義一個函數Q
function.fs
這樣的:
function Q = Q(r)
和... Q(r)
取決於一些計算依賴於theta
,
即
A1(theta), A2(theta), A3(theta)
Q
以列表的形式返回數據集。
我也想保持一個組θ值在我的主文件.FS program.fs
(即
theta = [90;120;150;180])
然後我想生成function.fs
一個數據集爲每個theta
。
我的想法是通過爲屬性theta設置一個值,運行程序生成一個數據集,爲theta
設置一個新值,運行該程序生成一個數據集,重複......我已經做了相當數量的的研究,我不清楚的是我如何實際記得價值o f代碼爲Q(r)
的房產。
我已經成功地安裝在我function.fs
文件的屬性,我可以從program.fs
設置:
在function.fs
我:
namespace models.test
type ContactAngle() =
let mutable m_theta = 90.0
//read only property
member this.Empty =
m_theta = 90.0
//read-write property
//i think i'm onto something with this static...
member this.Angle
with get() =
m_theta
and set newAmt =
m_theta <- newAmt
//module HTModel =
而在program.fs
我:
open models.test
let me = new ContactAngle()
printfn "%A" me.Angle
me.Angle <- 120.0
printfn "%A" me.Angle
這使得我重新定義值theta
。我在哪裏掙扎是我現在如何在function.fs
的函數中使用新的屬性值。
我覺得我錯過了一些非常基本的東西,需要一些幫助!任何有識之士將不勝感激!
我不認爲這是非常明確的 - 你是否在問'let rec ...和...'這樣的東西,但是跨文件嗎? –
我試圖理解,但我迷路了......如果你改述並使之更簡單,我很樂意提供建議,儘管 – nicolas
似乎有一個基本的誤解:你爲什麼要談論你的代碼的位置?爲了使用你需要調用它的代碼,程序不關心它定義在哪個文件中。如果你調用它並且它不知道它在哪裏,它會在編譯時出現。但之後,這是他的工作...... – nicolas