回答
我發現這個在博客中: 「What does this C# code look like in F#? (part one: expressions and statements)」
C#有一個名爲操作員「默認「 ,返回給定類型的零初始化 值:
default(int)
它的實用性有限;最常見的情況下,您可以在通用中使用默認(T) 。 F#具有 類似的構造爲庫 功能:
Unchecked.defaultof<int>
技術上講F#函數Unchecked.defaultof<'a>
是一個相當於default
操作者在C#。不過,我認爲值得注意的是,defaultof
在F#中被認爲是不安全的,應該只在真正需要時才使用(就像使用null
,這在F#中也不鼓勵)。
在大多數情況下,您可以通過使用option<'a>
類型來避免需要defaultof
。它允許您表示一個值尚不可用的事實。
但是,這裏是一個簡短的例子來演示這個想法。下面的C#代碼:
T temp = default(T);
// Code that may call: temp = foo()
if (temp == default(T)) temp = bar(arg)
return temp;
將可能寫成這樣在F#(使用勢在必行功能):
let temp = ref None
// Code that may call: temp := Some(foo())
match !temp with
| None -> bar(arg)
| Some(temp) -> temp
當然,這要看您的具體方案,並在某些情況下defaultof
是唯一你可以做。不過,我只想指出在F#中使用較少的defaultof
。
在你的C#示例中,你在if語句中使用賦值運算符而不是等號運算符。這是故意的嗎? – doppelgreener 2013-10-14 05:03:02
我應該說這對我不起作用,讓t = ref無 t:= Some(context.Items.FirstOrDefault(fun ii - > ii.Name = i.Name)) match!t with |一些它 - > - 完成這裏即使它是空的 |無 - >忽略 – 2015-01-20 15:00:12
- 1. 什麼是C#的默認()的等效Java關鍵字/結構?
- 2. C Sharp中「friend」關鍵字的等效含義是什麼?
- 3. 什麼是c printf%f默認精度?
- 4. 什麼是VB.NET相當於C#的默認關鍵字?
- 5. F# - 什麼是「it」關鍵字?
- 6. C++中的explicit關鍵字是什麼?
- 7. 什麼是Java中C#'var'關鍵字的等價物?
- 8. 什麼是C++字符串的默認容量?
- 9. v3中StringTemplate.setAttributes(Object)的v4中的等效內容是什麼?
- 10. 請告訴我什麼是C#.net使用「默認」關鍵字的
- 11. 什麼是Xamarin開發中的Content Provider(Android)的等效內容
- 12. 以下表達式的python中的等效內容是什麼?
- 13. 什麼是C++/CLI等同於C#的默認(T)?
- 14. 什麼是C#「is」關鍵字的VB.NET等價物?
- 15. 什麼是C#「var」關鍵字的VB.NET等價物?
- 16. 什麼是C#'is'和'as'關鍵字的Java等價物?
- 17. C#中的等效語法是什麼?
- 18. Cocoa中的等效C#'Thread.Join()'是什麼?
- 19. 什麼是XMLHttpRequest中的默認內容類型?
- 20. Mac OS X中/etc/rc.common的默認內容是什麼?
- 21. 生產環境中Rails.application.assets的等效內容是什麼?
- 22. 什麼是'CREATE TABLE ... LIKE ...'在SQL Server中的等效內容
- 23. 在.net core for context.environment.add中的等效內容是什麼?
- 24. JQuery中document.getElementbyId的等效內容是什麼?
- 25. F#中有沒有C#的@關鍵字?
- 26. 是否存在與C#的'checked'關鍵字等效的Java?
- 27. 默認的brackets.json文件的內容是什麼?
- 28. 在php中的默認關鍵字
- 29. C#在C++中的默認關鍵字相當於?
- 30. 新的存儲過程默認內容是什麼意思?
+1好問題。繼續看這個^^ – 2010-02-11 17:39:01