F# 스크립트에서 NuGet 패키지를 사용한 폭속 개발

7935 단어 F#.NETCoreC#

소개



지금까지 C#에서는 dotnet-script를 사용하여 NuGet 패키지를 사용하여 스크립트를 개발할 수있었습니다.
예를 들어, 다음과 같이 Json을 다루는 NuGet 패키지를 쉽게 사용할 수 있습니다.

Sample.csx
#r "nuget: Utf8Json"
using Utf8Json;

var str = "{ \"key\":100 }";
var json = JsonSerializer.Deserialize<dynamic>(str);
Console.WriteLine($"key= {json["key"]}");



이번에는 F# 5에서 다음 구문이 공식적으로 지원되었다는 이야기입니다.
#r "nuget: Utf8Json"

C# 스크립트가 있고 괜찮습니다 ...
C# 스크립트의 경우 여러 가지를 준비해야하기 때문에 상당히 불편합니다.

자세한 내용은 이 기사을 참조하십시오.

사전 준비



.NET



이 기능은 F# 5 preview 1이기 때문에 필연적으로 .NET 5 이상이 필요합니다.

따라서 공식 페이지에서 최신 .NET을 설치해야합니다.

※2020/05/07 현재, 5.0.100-preview.3.20216.6이 최신

VSCode



텍스트 편집기는 무엇이든 좋지만 최근에는 VSCode가 자주 사용된다고 생각하므로 아래에 필요한 설정을 작성하십시오.

이번에는 VSCode에서 F# 개발을 수행하는 데 필요한 최소한의 확장 기능을 소개합니다.

구문 강조 표시, 코드 완성, 인텔리전스 등이 필요하지 않은 경우 설치하지 않아도 문제가 없습니다.

C# 확장



Ionide-fsharp가 의존하기 때문에 도입 필수입니다.


Ionide-fsharp 확장



구문 강조 표시 및 코드 완성과 같은 다양한 기능을 제공하는 확장 기능입니다.


settings.json



설치가 완료되면 VSCode 구성 파일을 편집하여 Ionide-fsharp가 .NET Core/5 및 F# 5 미리보기를 사용하도록 구성합니다.

settings.json
{
    "FSharp.fsacRuntime": "netcore",
    "FSharp.fsiExtraParameters": [
        "--langversion:preview"
    ]
}

F# 5가 공식적으로 출시 된 후에는 --langversion : preview가 필요하지 않습니다.

이용방법



VSCode의 경우



먼저 적절한 위치에 .fsx 파일을 만듭니다.

powershell
mkdir "D:/src/sandbox"
new-item "D:/src/sandbox/main.fsx"

이번에는 D:/src/sandbox/main.fsx라는 파일 이름으로 만들었지만 원하는 위치에 원하는 이름으로 만들 수 있습니다.

그런 다음 VSCode에서 main.fsx를 엽니 다.

powershell
code -n "D:/src/sandbox/main.fsx"

그런 다음 다음과 같이 작성하여 VSCode를 닫은 다음 다시 "D :/src/sandbox/main.fsx"를 다시 엽니 다.

main.fsx
#r "nuget: Utf8Json"

다시 열면 NuGet 패키지의 인텔리 센스가 활성화됩니다.


코드를 다음과 같이 수정하십시오.
* F#에는 dynamic이 없으므로 제대로 형식을 만듭니다.

main.fsx
#r "nuget: Utf8Json"

open Utf8Json

type Foo = { Key:int }

"{ \"Key\":100 }"
|> JsonSerializer.Deserialize<Foo>
|> fun x -> printfn "Key= %d" x.Key

나머지는 실행 버튼을 누르면 실행됩니다.


dotnet 명령을 직접 사용하는 경우



먼저 코드를 다음과 같이 만듭니다.

main.fsx
#r "nuget: Utf8Json"

open Utf8Json

type Foo = { Key:int }

"{ \"Key\":100 }"
|> JsonSerializer.Deserialize<Foo>
|> fun x -> printfn "Key= %d" x.Key

dotnet fsi에 --langversion : preview를 지정하여 실행하십시오.

powershell
dotnet fsi --langversion:preview main.fsx



결론



겸손하게 말해 최고군요! !

좋은 웹페이지 즐겨찾기