4
在Visual Studio 2015:F#:雙重提取值名稱與函數名稱衝突?
let myFunction (``string`` : string) =
"\"Quoted string\"" |> (Regex "\"[^\"]*\"").Match |> string
let myOtherFunction (str : string) =
"\"Quoted string\"" |> (Regex "\"[^\"]*\"").Match |> string
首先函數生成編譯器錯誤,則string
功能在紅色下劃線。 (「這表達預計將有類型相匹配 - >「一但這裏的類型是字符串」)
第二個功能是很好,沒有問題。
這是設計嗎?
而且,事實上,雙反引號是沒有必要在這裏所有。你可以寫'讓上(字符串:字符串)= string.ToUpper()',它會工作:'上「富」'會產生的結果'「FOO」'。唯一一次雙反引號是** **必需的是,如果你想通過像'type'關鍵字的名字來命名的參數,或者如果你想在其名稱中的空格或其他常非法標點符號。 – rmunn