【问题标题】:Julia string format "if"Julia 字符串格式“如果”
【发布时间】:2016-12-17 14:39:48
【问题描述】:

在 Python 中,if 可用于如下情况,用于可选字符串格式化。

bar = 3
"{n} bar{s}".format(n=bar, s='s' if bar != 1 else '')
# "3 bars"

bar = 1
"{n} bar{s}".format(n=bar, s='s' if bar != 1 else '')
# "1 bar"

Julia 使用美元符号进行字符串格式化。

foo = 3
"foo $foo"  # "foo 3"

是否可以使用 Julia 简单地镜像 Python 代码的功能?

【问题讨论】:

  • 是的。 $ 插值方法适用于括号中的表达式。在这种情况下,"$bar bar$(bar != 1 ? 's' : "")" 等价于 python 结果。
  • @DanGetz 这很完美。将此添加为答案将不胜感激 - 很乐意解决此问题并将您的解决方案标记为正确。
  • Pythons inline if 只是 julia(以及 C 和其他语言)的三元语句。 Python a if b else c 是 julia 的 b ? a : c(相当于 Lua 的 b and a or c

标签: python string if-statement format julia


【解决方案1】:

是的。 $ 插值方法适用于括号中的表达式。在这种情况下,$bar bar$(bar != 1 ? 's' : "") 等价于 Python 结果。

正如@Oxinabox 提到的,Python 的内联if 对应于Julia 的三元运算符。在 Julia 中,三元运算符a ? b : cif a b ; else c ; end 的便捷快捷方式。请注意,这意味着 1==2 ? foo() : bar() 不会评估 foo()

【讨论】:

    【解决方案2】:

    除了@DanGetz 所说的所有内容之外,您可能还想查看Formatting package - 它明确旨在为 Julia 提供更多类似于 Python 的格式化工具。

    【讨论】:

    • 可以用printfmt 来格式化矩阵,比如this question 问。
    猜你喜欢
    • 1970-01-01
    • 2016-08-30
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    • 2019-03-04
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多