web-dev-qa-db-ja.com

F#string.Format

最初のF#ライブラリを作成しています

私はstring.Formatを使用しようとしていますが、そのような関数が存在しないと文句を言います。

利用できませんか、それとも何か問題がありますか?

44
mamu

フルネームの使用を避けたい場合は、F#でopenを使用できます。

open System
let s = String.Format("Hello {0}", "world")

これは、F#インタラクティブ(最初にopen句を入力)と通常のコンパイル済みアプリケーションの両方で機能します。重要なことは、Stringを大文字のSで記述する必要があることです。これは、C#のstringが通常の型名ではないためです。これは、System.String型を参照するキーワードです。

または、sprintf関数を確認することもできます。これはString.FormatのF#固有の代替で、いくつかの素晴らしい利点があります。たとえば、型チェックされます。

let s = sprintf "Hello %s! Number is %d" "world" 42

コンパイラーは、パラメーター(stringおよびint)がフォーマット指定子(ストリングの場合は%s、整数の場合は%d)と一致することを確認します。関数は、部分的な関数の適用を使用するシナリオでもよりよく機能します。

let nums = [ 1 .. 10 ]
let formatted = nums |> List.map (sprintf "number %d")

これにより、「数値1」、「数値2」などを含む文字列のリストが生成されます。String.Formatを使用してこれを行う場合は、ラムダ関数を明示的に記述する必要があります。

106
Tomas Petricek

そのフルネームは次のとおりです。

System.String.Format
3
Yin Zhu