【发布时间】:2013-09-02 14:11:10
【问题描述】:
我熟悉什么是强类型和弱类型。我也知道 Java 是强类型的。 现在我学习python,它是一种强类型语言。但是现在我看到 python 比 Java 是“更多”的强类型。举例说明
public class StringConcat {
public static void main(String[] args) {
String s="hello ";
s+=4;
System.out.println(s);
}
}
没有错误并打印 hello 4
在python中
>>> x="hello"
>>> x+=4
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
所以这个例子展示了python是强类型的。除非 Java 在底层,做一些操作将 int 转换为 String 并执行 String concat。
【问题讨论】:
-
除非 Java 在底层,做一些操作将 int 转换为 String 并执行 String concat。 是的。
-
字符串连接在 Java 中是一种非常特殊的情况。 JLS 中有一种语言说“+”运算符会发生自动转换(使用
toString)(这适用于+=,正如 Prashant 指出的那样),但是没有其他类似的情况可以进行这种转换“不相关”类型之间发生。我不会因为这个规则例外而称 Java 为“弱类型”。
标签: java python string string-concatenation strong-typing