当前位置:  开发笔记 > 前端 > 正文

Facebook的流程中的运营商'|>'

如何解决《Facebook的流程中的运营商'|>'》经验,为你挑选了1个好方法。

我是ocaml的新手,通过了一些教程,并认为下一步,我会通过阅读一些OOS来熟悉语法.所以我从Facebook 下载了Flow.

但是,我使用"|>"遇到了一些奇怪的语法,我无法弄清楚.

首先我在这里遇到了"|>" :

  args = CommandSpec.ArgSpec.(
    empty
    |> flag "--tokens" no_arg
        ~doc:"Include a list of syntax tokens in the output"
    |> flag "--pretty" no_arg
        ~doc:"Pretty-print JSON output"
    |> CommandUtils.from_flag
    |> anon "file" (optional string) ~doc:"[FILE]"
  )

当我在寻找它的定义时,我在另一个文件中找到了这个:

let (|>) (o : 'a)  (f : 'a -> 'b) : 'b = f o

但我不太清楚它在做什么,或者它是否相关.

你能帮忙吗?



1> Ewan Mellor..:
let (|>) (o : 'a)  (f : 'a -> 'b) : 'b = f o

这是声明一个名为中缀的操作符|>,由于名称周围的parens,你知道它是中缀.

它需要两个参数,o具有未知类型'a,并且f是从'a第二个未知类型到第二个未知类型的函数'b.

|>返回类型的东西'b.

结果由计算f o.

换句话说,o |> f就是一样f o.这只是一个肮脏/巧妙的技巧,能够以这种方式在链中编写参数声明,而不必在所有内容周围放置大量括号.运算符的优先级较低,因此它充当每个标志声明之间的分隔符.


中缀是正确的,答案应该是固定的.
推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有