Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
意思是!!F#(.fsx)中的运算符_F#_F# Fake - Fatal编程技术网

意思是!!F#(.fsx)中的运算符

意思是!!F#(.fsx)中的运算符,f#,f#-fake,F#,F# Fake,我在看一个通过FsLab模板自动生成的假构建脚本。在“let”绑定中的一个字符串前面!!使用运算符。这是什么意思!!接线员 看这,那!!操作员未列出 这是有问题的代码,这个!!操作员位于从第三行到最后一行的位置: #r "./packages/build/FAKE/tools/FakeLib.dll" open Fake open System let buildDir = "./build/" let appReferences = !! "/**/*.fsproj" let dotne

我在看一个通过FsLab模板自动生成的假构建脚本。在“let”绑定中的一个字符串前面!!使用运算符。这是什么意思!!接线员

看这,那!!操作员未列出

这是有问题的代码,这个!!操作员位于从第三行到最后一行的位置:

#r "./packages/build/FAKE/tools/FakeLib.dll"

open Fake
open System

let buildDir  = "./build/"
let appReferences = !! "/**/*.fsproj"
let dotnetcliVersion = "2.0.2"
let mutable dotnetExePath = "dotnet"
再往下看,appReferences标识符的使用如下:

Target "Restore" (fun _ ->
    appReferences
    |> Seq.iter (fun p ->
        let dir = System.IO.Path.GetDirectoryName p
        runDotnet dir "restore"
    )
)

它采用文件模式并返回与该模式匹配的文件集合。

谢谢,根据我遇到的代码中如何使用它,这是有意义的。你知道这是一个标准的操作符还是在运行一个伪构建脚本时在别处定义的东西吗?@JohnHenderson-fake有自己的DSL,一些操作符遵循其他构建系统(可能是Ant?)。正如@s952163所说,
运算符不是标准的F#运算符,它是由Fake定义的。具体地说,它是与另外两个globbing操作符一起定义的:
++
用于添加另一组文件,而
--
用于删除文件模式(例如,“与此匹配的文件除外”)。例如,您可以通过执行
!!来构建文件列表!!“*.docx”+“*.xlsx”--“*.draft.docx”--“*.draft.xlsx
如果您想要除草稿之外的所有Word和Excel文档。请注意,在F#中,运算符通常只是一个函数,如果您将鼠标悬停在它上面,IDE可能会提供一些文档。如果它是在您自己的代码中定义的自定义运算符,那么您也可以转到它的定义。