我总是想知道什么是可变性.为什么.net设计人员只开发了stringbuilder类来实现字符串类的可变性.考虑到int&而不是int的intbuilder无论数据类型如何,字符串都以完全相同的方式实现.
解决方法
许多其他语言为字符串提供了类似的设计:带有
StringBuffer和
StringBuilder的Java,带有
StringBuilder的Scala,带有MutableString
though there are other,beter solutions in Python的Python.在C字符串中是可变的,因此不需要构建器.
构造符存在于字符串的原因是:
>许多语言将字符串定义为不可变(任何更改都需要内存中的新对象)
>字符串往往很大,比整数大得多
> [1]和[2]相结合导致效率低下
int不存在构建器的原因:
>它本身就是简单的数据结构
>大多数cpu都有优化的指令来处理简单的数字(添加,带走等)
>大多数cpu只使用寄存器或快速cpu缓存就可以在一个或几个周期内有效地处理[2]指令
> [2]和[3]结合起来消除了优化的需要
>根本不需要改变int,但是,如果需要,可以使用BitConverter或binary shift operations
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。