【问题标题】:Format attribute of Java and Python in CC语言中Java和Python的格式属性
【发布时间】:2016-12-23 13:29:36
【问题描述】:

在 Python 中,我们可以这样使用格式属性:

"Today is {}/{}/{}".format(self.day, self.month, self.year) 

在 Java 中,我们也可以这样做:

MessageFormat.format("Today is {0}/{1}/{2}", this.day, this.month, this.year); 

C 中是否有等效的格式属性?除了 %d 和 %s 之外,Python 中也存在格式属性。后者有一个优势,因为它不需要指定变量的类型,无论是数字还是字符串等等。

【问题讨论】:

标签: java python c


【解决方案1】:

这不能在 C 中完成。至少不干净。

Java 和 Python 都有强类型。这意味着对象具有无法更改的内在类型,并且在程序执行期间这种类型是已知的。您可以将任何对象适当地转换为字符串,因为它们的类型是已知的并且它们实现了toString()/__str__() 方法。

相比之下,C 具有 弱类型。 C 中的类型更多的是对内存地址处数据的解释。您可以将任何东西投射到其他任何东西上。 sprintf() 函数无法知道是什么。

如果您有兴趣,可以使用 C++ 中的通用语法构建字符串。

【讨论】:

  • 非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-06
  • 2010-11-23
  • 2014-08-09
  • 1970-01-01
相关资源
最近更新 更多