Если вы хотите избежать использования полного имени, вы можете использовать open
в F #:
open System
let s = String.Format("Hello {0}", "world")
Это должно работать как в интерактивном режиме F # (сначала введите предложение open
), так и в обычных скомпилированных приложениях. Ключевым моментом является то, что вы должны написать String
в верхнем регистре S
. Это потому, что string
в C # не является обычным именем типа - это ключевое слово, относящееся к типу System.String
.
Кроме того, вы также можете взглянуть на функцию sprintf
. Это специфичная для F # альтернатива String.Format
, которая имеет некоторые приятные преимущества - например, она проверена типом:
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
, вам придется явно написать лямбда-функцию.