【问题标题】:String formatting vs String Interpolation字符串格式化与字符串插值
【发布时间】:2022-07-05 16:34:58
【问题描述】:

请帮我理解字符串格式化和字符串插值这两个概念的区别。

来自Stackoverflow tag info for string-interpolation

字符串插值是用给定值替换字符串中定义的字符序列。对于格式化和定义内容,这种表示可能被认为比使用连接运算符组合多个字符串和值更直观。字符串插值通常作为语言功能在许多编程语言中实现,包括 PHP、Haxe、Perl、Ruby、Python、C#(从 6.0 开始)等。

来自Stackoverflow tag info for string-formatting

通常是指将任意数量的不同数据类型显示为字符串的多种方法。

对我来说,它们看起来很相似,但我希望有一些不同。

另外,请澄清这些是一些特定于技术的概念,还是与技术无关的概念。 (我在 Python 的上下文中阅读了这些概念。但是快速的 google 和 bing 搜索找到了其他编程语言的相关文章,例如 Java、C# 等)

【问题讨论】:

    标签: string-formatting string-interpolation


    【解决方案1】:

    字符串插值是进行字符串格式化的一种方法。另一种进行字符串格式化的方法称为字符串连接。这些是与技术无关的概念。

    换句话说,“字符串格式化”是一个目标,而“字符串插值”是实现该目标的策略。

    【讨论】:

      【解决方案2】:

      字符串格式化是一个相当笼统的术语,它使用一些参数从数据中生成字符串内容。例如,从特定日期格式的日期对象创建日期字符串,从具有特定小数位数或多个前导空格和零的数字中创建数字字符串等。它还可以涉及模板,例如 sprintf 中的函数C 或许多其他语言,或例如str.format 在 Python 中。例如,在 Ruby 中:

      sprintf("%06.2f", 1.2) # float, length 6, 2 decimals, leading zeroes if needed
      # => "001.20"
      

      字符串插值是一个更受限制的概念:评估嵌入在字符串文字中的表达式并将其替换为此类评估的结果。例如,在 Ruby 中:

      "Two plus two is #{2+2}"
      # => "Two plus two is 4"
      

      某些语言可以在插值中执行格式化。例如,在 Python 中:

      f"Six divided by five is {6/5:06.2f}"
      # => "Six divided by five is 001.20"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-09
        • 2012-07-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-06
        相关资源
        最近更新 更多