F# printf 填充

标签 f#

我是 F# 初学者,下面代码中的 %-5s 和 %5s 有什么作用?我认为它提供了空间填充,但我不确定它是如何填充的?

    printfn "%-5s %5s" "a" "b"

当我尝试 printf "%-5s %5s""a""b""v"printf "%-5s %-5s""a""b""c" 这给了我一个类型匹配错误,我不明白语法,它似乎没有打印三个字符串“%-5s %5s”、“a”和“b”的连接。它似乎在 %5 之间放置了“a”和“b”。那为什么我不能在后面加上“c”呢?另外,我正在关注 Youtube 上的教程:https://www.youtube.com/watch?v=c7eNDJN758U

如果有其他好的F#学习函数式语言精髓的资源,请多多指教!

最佳答案

%5s%-5s 是格式化代码以及指定的宽度和对齐方式。

第一个代码中的连字符将值左对齐。

例如,我有以下两行:

printfn "%-5s %5s" "a" "b"
printfn "%-5s %5s" "yo" "hey!"

打印的内容如下:

a        b
yo    hey!

Here是一个详细解释 printfn 函数的页面。整个站点是学习使用 F# 的绝佳资源。

祝你好运!

PS - 至于您关于添加第三个参数时出错的问题,printfn 函数将根据字符串中的格式代码检查您提供的参数的类型和数量。这在我之前包含的链接页面中有解释。

关于F# printf 填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53725977/

相关文章:

F# |>(管道转发) 'block following let is unfinished' 错误

asp.net - 将 Funscript 添加到现有的 ASP.NET MVC 项目

c# - 如何并排组织 F# 和 C#

f# - 为什么在F#中没有隐式转换?

f# - 部署到IIS应用程序时升级FSharp.Core版本,程序集引用错误

f# - [<AutoOpen>] 有反义词吗?

c# - F# 对象树语法

f# - 如何将 int64 转换为 Nullable<int64>

f# - 在此上下文中调用的运算符 "(>=)"是什么?

f# - 将 int 转换为在 F# 中 float