在细读 Websharper 在线示例时,我遇到过这样的示例:

Div [Attr.Style "padding: 5px;"] -< [
    P [Text "Type a name in the input field below:"]
    Form [
        label "First Name: "
        input
        |>! OnKeyUp (fun _ _ -> update ())
    ]
    P [
        label "Suggestions: "
        hint
    ]
]

我们似乎不在计算表达式中,出于某种原因,谷歌搜索 |>! 的含义并不是特别容易。
! 修饰符在这种情况下有什么作用?它如何改变前向管道的结果?

最佳答案

谜团已揭开。它不是原生的 F# 运算符;它是一个 Websharper 运营商。

从源代码( https://github.com/intellifactory/websharper/blob/master/src/stdlib/WebSharper.Main/Pervasives.fs#L105 ):

/// Implements piping with mutation.
[<Inline "($f($x), $x)">]
let ( |>! ) x f = f x; x

关于f# - |>的含义! (向前管砰),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23325095/

10-10 23:28