0
我在fsharp函數中有一個簡單的模式匹配表達式,它會一直生成一個編譯器警告,我想知道是什麼導致了這個以及我需要做什麼來阻止它。F#編譯器警告
在我的簡化示例中,我嘗試提取正則表達式匹配的第二組,然後使用模式匹配或者在表達式不匹配時返回None或在匹配時返回Some(SecondGroupValue)。
let GetGroup2 s =
let pattern = @"(d+)(.+)(d+)"
let m : Match = Regex.Match(s, pattern)
// this generates a warning :
match m.Success with
| true ->
if (m.Groups.Count >= 3) then (string)m.Groups.[2] |> Some else None
| false -> None
我得到的警告是:
這個表達式的類型應該是「單位」,但有類型「字符串選項」。使用ignore放棄表達式的結果,或者使用'let'將結果綁定到名稱。
此功能是意味着返回'字符串選項'。編譯器試圖警告我什麼?
我複製並粘貼了你的代碼片斷 - 沒有任何警告。你確定警告來自這個特定的功能嗎? –
不,它不會來自這個 - 它會來自你正在使用它的地方 - 看到你在這裏返回一個「字符串選項」 - 你可能在某個地方使用它而不使用它的值 – Carsten
重新啓動Visual Studio後,IDE停止顯示警告。我很抱歉浪費任何人的時間。 – Russell