我知道每次输入空字符串字面量""
时,都会引用字符串池中相同的String对象。
但是为什么String API没有包括public static final String Empty = "";
,这样我就可以使用对String.Empty
的引用了呢?
它至少能节省编译时间,因为编译器将知道引用现有的String对象,而不必检查是否已经被创建以供重用,对吧?而且,在许多情况下,我认为大量的字符串字面量,特别是微小的字面量,是一种"代码异味"。
所以,没有String.Empty是出于伟大的设计原因,还是语言创建者只是不分享我的看法呢?
outputBlah = ""
这样的代码,他可能更喜欢用something == String.Empty
来代替something.Length > 0
(这样你就省略了对空值的检查)。 - SkurmedelString.isEmpty()
函数…你为什么需要String.EMPTY
? - Buhake SindiString.isEmpty()
不会返回一个空字符串。 - Steve Kuo""
会产生潜在错误,因为无法确定空字符串是有意设置的还是代码尚未完成。另外,在阅读代码时容易忽略""
、" "
和''
之间的区别。我认为这样做有价值,因为可以避免在代码中使用字符串字面量,并明确声明将变量设置为空。 - SouthShoreAK