在Microsoft Visual Studio 2015的F#教程中,这个代码虽然略有不同。
module Integers =
/// A list of the numbers from 0 to 99
let sampleNumbers = [ 0 .. 99 ]
/// A list of all tuples containing all the numbers from 0 to 99 andtheir squares
let sampleTableOfSquares = [ for i in 0 .. 99 -> (i, i*i) ]
// The next line prints a list that includes tuples, using %A for generic printing
printfn "The table of squares from 0 to 99 is:\n%A" sampleTableOfSquares
System.Console.ReadKey() |> ignore
此代码返回标题The table of squares from 0 to 99 is:
然后它发送1-99及其方块的数字。我不明白为什么需要\n%A
,特别是为什么它必须是A。
以下是其他一些不同字母的类似例子:
%d
module BasicFunctions =
// Use 'let' to define a function that accepts an integer argument and returns an integer.
let func1 x = x*x + 3
// Parenthesis are optional for function arguments
let func1a (x) = x*x + 3
/// Apply the function, naming the function return result using 'let'.
/// The variable type is inferred from the function return type.
let result1 = func1 4573
printfn "The result of squaring the integer 4573 and adding 3 is %d" result1
%s
module StringManipulation =
let string1 = "Hello"
let string2 = "world"
/// Use @ to create a verbatim string literal
let string3 = @"c:\Program Files\"
/// Using a triple-quote string literal
let string4 = """He said "hello world" after you did"""
let helloWorld = string1 + " " + string2 // concatenate the two strings with a space in between
printfn "%s" helloWorld
/// A string formed by taking the first 7 characters of one of the result strings
let substring = helloWorld.[0..6]
printfn "%s" substring
这让我有点困惑,因为他们必须有他们的信件或他们不会工作,所以可能有人。请解释%a
,%d
和%s
以及其他任何其他\n
的含义。
答案 0 :(得分:3)
本页对此进行了解释:https://msdn.microsoft.com/en-us/library/ee370560.aspx
F#使用类似于C的合理标准格式字符串。
总结:
jQuery.each([1,2,3], function () {
if(conditionMet) {
return false;
}
});
唯一奇怪的是%s prints a string
%d is an integer
会尝试打印任何内容
%A
只是换行符
答案 1 :(得分:0)
符号%A,%s和%d是占位符。当函数printfn由其参数值调用时,它们将被替换。每个占位符都需要特定的参数类型:
以下是一些可以在F#REPL中执行的示例:
> printfn "a string: %s" "abc";;
a string: abc
val it : unit = ()
> printfn "a signed int: %d" -2;;
a signed int: -2
val it : unit = ()
> printfn "a list: %A" [1;2;3];;
a list: [1; 2; 3]
val it : unit = ()
> printfn "a list: %A" [(1, "a");(2, "b");(3, "c")];;
a list: [(1, "a"); (2, "b"); (3, "c")]
val it : unit = ()
> printfn "a signed int [%d] and a string [%s]" -2 "xyz";;
a signed int [-2] and a string [xyz]
val it : unit = ()
有关printfn及其占位符的更多信息,我建议使用此网站:
http://fsharpforfunandprofit.com/posts/printf/
字符串" \ n"与占位符没有直接关系。它插入一个新行。