F# で LINQ 入門 Single SingleOrDefault
職場でシングルベルを迎えそうなSGです。わたし、ひとりぼっち……
open System.Linq let puellaMagi = ["Mami"] puellaMagi.Single() |> printfn "%s" let newPuellaMagi = "Madoka" :: puellaMagi (* ひとりぼっちじゃないのでエラー newPuellaMagi.Single() |> printfn "%s" newPuellaMagi.SingleOrDefault() |> printfn "%s" *) (* SingleOrDefault は空のシーケンスに対してのみ既定値を返す *) [].SingleOrDefault() |> printfn "%s"
実行結果
Mami val puellaMagi : string list = ["Mami"] val newPuellaMagi : string list = ["Madoka"; "Mami"]
ところで、option のデフォルトって、None なのか、null なのかどっちなんだろう……と思って調べてみました。
let list = [Some("111")] let empty = list.Tail empty.SingleOrDefault()
実行結果
val list : string option list = [Some "111"] val empty : string option list = [] val it : string option = None
もう None も恐くない