28得票6回答
为什么C#不支持在类/方法级别上使用const?

我一直在想为什么C#不支持在类或方法级别上使用const。我知道Jon Skeet长期以来一直希望支持不可变性,并且我认为使用C++函数const语法可能会有所帮助。通过在类级别添加const关键字,我们将拥有完全的支持。 现在,我的问题是,C#团队没有开发此类支持的原因是什么? 我想通过...

27得票4回答
ES6的const关键字会影响垃圾回收吗?

在Kyle Simpson的新书《You Don't Know JS: ES6 and beyond》中,我发现以下摘录: 警告:将对象或数组分配为常量意味着该值在该常量的词法范围消失之前将无法进行垃圾回收,因为对该值的引用永远无法取消设置。这可能是可取的,但如果不是您的意图,请小心! (...

74得票7回答
int vs const int&

我注意到我通常使用常量引用作为返回值或参数。我认为原因是它在代码中几乎与非引用使用相同。但这肯定需要更多的空间,函数声明变得更长。我对这种代码满意,但我认为有些人可能认为它是糟糕的编程风格。 你觉得呢?写 const int & 而不是 int 值得吗?我认为它已经被编译器优化了,所...

19得票1回答
"extern const"与"extern"的区别

我看到了两种创建全局变量的方法,它们之间有什么区别,何时使用哪种方法?//.h extern NSString * const MyConstant; //.m NSString * const MyConstant = @"MyConstant"; 和//.h extern NSStrin...

56得票6回答
定义局部变量的const与类常量的区别

如果我使用的常量只在一个方法中需要,那么在方法范围内声明常量还是在类范围内声明常量更好?在方法中声明会更高效吗?如果是这样,我认为将它们定义在类范围内(文件顶部)更标准,以便更轻松地更改值并重新编译。public class Bob { private const int SomeCon...

7得票2回答
如何使用两个函数,一个返回迭代器,另一个返回const迭代器

我有一个名叫find的函数,它有两个版本: template <typename T> typename btree<T>::iterator btree<T>::find(const T& elem) { //Implementatio...

21得票3回答
Swift - 使用let关键字的可选项

我正在学习 Swift。在第一印象中,我看不出在类中将常量(没有初始存储值)声明为可选的任何意义。 例如:let userName: String? 因为默认初始化程序会将其分配为nil,并且随后不能更改(因为它是一个常量)。 据我所知,自定义初始化程序仍然可以将非 nil 值分配给它,但在...

25得票3回答
Java或Java库中是否有语言代码的常量?

在Java或者Java库中是否有语言代码的常量,例如"en" 或 "de"?(或者直接使用字符串也可以吗?) 我知道可以像这样:Locale.COUNTRY-NAME.getLanguage() 会起作用,但我正在寻找更简洁的解决方案Locale.LANGUAGE-NAME

8得票4回答
g++:const丢弃限定符

为什么我会收到“放弃限定符”错误消息: customExc.cpp: In member function ‘virtual const char* CustomException::what() const’: customExc.cpp: error: passing ‘const Cu...

15得票3回答
枚举 VS 类 VS 接口

我阅读了这个网站上关于常量用法的很多文章。 问题: 何时应使用枚举作为常量, 而不是使用类或接口? 我看到有两种情况我希望能解决。 1. 多个项目中应用的全局常量。 例如: 常见日志字符串 容器引用, 如在WebSphere EAR中使用的数据库映射引用 2. 对象特定的常量...