2015-05-09 52 views
2

我在C#這個聲明數組:如何在F#中聲明一個對象數組?

object[] objects = { "myString", 12, 2.06, null, "otherString" }; 

現在我要聲明在F#相似的陣列,所以我嘗試:

let objects = ["myString"; 12; 2.06; null; "otherString"] 

但是這給了我編譯錯誤:

「這表達預計將有字符串類型,但這裏的類型爲int」

「這表達預計將有字符串類型,但這裏有float類型」

爲值12和2.06。

我應該如何繼續在F#中創建一個類似的數組?

回答

3

在你的代碼的聲明列表:

let objects : obj list = ["myString"; 12; 2.06; null; "otherString"] 

數組是:

let objects : obj[] = [|"myString"; 12; 2.06; null; "otherString"|] 

只需添加類型註釋:obj list: obj[]對所有這些,否則F#推斷類型從第一個元素。

+0

工程很好。謝謝! – brinch

+7

還要注意,這不是一個數組,而是一個列表。數組用「bracket-pipe」表示:'[| 1; 2; 3 |]' –

+1

@FyodorSoikin true,但對於數組':obj []'也需要註解'let objects:obj [] = [|「myString」; 12; 2.06;空值; 「otherString」 |]' –

相關問題