【问题标题】:F# sprintf won't print in interactive consoleF# sprintf 不会在交互式控制台中打印
【发布时间】:2012-03-22 15:33:42
【问题描述】:

我正在尝试使用 F# 交互式控制台打印一个 int。

let x = sprintf "%d", 3
printf x

给予:

stdin(12,8): 错误 FS0001: 类型 '(int -> string) * System.Numerics.BigIntege r' 与类型不兼容 'Printf.TextWriterFormat'

我做错了什么?

【问题讨论】:

    标签: f#


    【解决方案1】:

    试试

    let x = sprintf "%d" 3
    printf "%s" x
    

    因为你写 x 的方式是一个函数和一个数字的元组

    【讨论】:

    • 这行不通。 printf 不期望字符串,而是格式。 printf "%s" x 可以工作,或者只是System.Console.Write x
    • @PaulNikonowicz - 这两种方式都不起作用。格式字符串必须是字符串文字,而不是变量,因为它在编译时转换为 TextWriterFormat<'a>。这就是为什么printf "hi" 有效,而printf x 无效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-21
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    相关资源
    最近更新 更多