F#的插值字符串中是否支持使用三元条件运算符?
问题结论
F#的插值字符串里完全支持嵌入条件逻辑,F#没有其他语言里常见的?:三元运算符,因为原生的if...else结构本身就是可返回值的表达式,直接放在插值的{}块里就可以正常运行。
你给出的写法调整转义符后是可正常执行的,完整可运行示例如下:
let innerString = "测试内容" let boolFlag = true printfn $"""This is a string{($", and here's the inner string: {innerString}!" if boolFlag else "!")} """
当boolFlag为true时输出:
This is a string, and here's the inner string: 测试内容!
当boolFlag为false时输出:
This is a string!
注意事项
- 因为
if在F#里是表达式,必须存在else分支,且两个分支的返回值类型必须一致,放在插值块里也需要遵守这个规则,否则会编译报错。 - 内层如果还要嵌套插值字符串,和外层的使用规则没有区别,正常加
$前缀即可。
内容的提问来源于stack exchange,提问作者paolo_
相关产品推荐
相关产品推荐

