如何使用 HtmlDocument 的 TryGetHtml
How to use HtmlDocument's TryGetHtml
假设我有一个函数
let GetDataFromWebsite (url:string) =
let webpage = HtmlDocument.Load(url)
let html = webpage.TryGetHtml
html
(请注意,一旦我弄清楚如何使用 TryGetHtml
函数,这将成为一个更长的函数)
这告诉我它有一个 return string -> unit -> HtmlNode option
。 returning 到底是什么?我该如何使用它?我试过了
match GetDataFromWebsite(@"...") with
| None -> "None"
| _ -> (fun a -> a.ToString())
|> printfn "%s"
但 visual studio 指出:
This expresion was expected to have type
'unit -> FSharp.Data.HtmlNode option'
but here has type
''a option'
快到了:)
TryGetHtml 是一个函数,而不是 属性,您可能想要计算它而不是分配它:
let GetDataFromWebsite (url:string) =
let webpage = HtmlDocument.Load(url)
let html = webpage.TryGetHtml() // note braces
html
现在 returns HtmlNode option
您可以在以下位置进行模式匹配:
match GetDataFromWebsite(@"...") with
| None -> "None"
| Some x -> x.ToString()
|> printfn "%s"
编译应该没有错误。
假设我有一个函数
let GetDataFromWebsite (url:string) =
let webpage = HtmlDocument.Load(url)
let html = webpage.TryGetHtml
html
(请注意,一旦我弄清楚如何使用 TryGetHtml
函数,这将成为一个更长的函数)
这告诉我它有一个 return string -> unit -> HtmlNode option
。 returning 到底是什么?我该如何使用它?我试过了
match GetDataFromWebsite(@"...") with
| None -> "None"
| _ -> (fun a -> a.ToString())
|> printfn "%s"
但 visual studio 指出:
This expresion was expected to have type
'unit -> FSharp.Data.HtmlNode option'
but here has type
''a option'
快到了:)
TryGetHtml 是一个函数,而不是 属性,您可能想要计算它而不是分配它:
let GetDataFromWebsite (url:string) =
let webpage = HtmlDocument.Load(url)
let html = webpage.TryGetHtml() // note braces
html
现在 returns HtmlNode option
您可以在以下位置进行模式匹配:
match GetDataFromWebsite(@"...") with
| None -> "None"
| Some x -> x.ToString()
|> printfn "%s"
编译应该没有错误。