首页 / 知识
关于C#:字符串常量和字符串文字之间有什么区别?
2023-04-13 02:23:00

What's the difference between a string constant and a string literal?我正在学习Objective-C和Cocoa,并且遇到了以下说法:
我只使用高级语言工作,因此不必过多考虑字符串的细节。 字符串常量和字符串文字有什么区别?
在Objective-C中,语法 Objective-C编译器通常在编译单元中执行内部文字字符串,也就是说,它们合并了同一文字字符串的多种用法,而且链接程序有可能在直接链接到单个二进制文件的编译单元中进行其他实习。 (由于Cocoa区分可变字符串和不可变字符串,并且文字字符串也始终是不可变的,所以这可以简单明了且安全。) 另一方面,常量字符串通常使用如下语法声明和定义:
此处的语法练习的重点是,通过确保即使在同一地址空间中的多个框架(共享库)中也仅使用该字符串的一个实例,可以有效地使用该字符串。 ( 尽管在25MHz 68030工作站和8MB RAM的情况下燃烧内存并不像以前那么大,但是比较字符串是否相等可能需要一些时间。确保大多数时间上相等的字符串也将成为指针相等的帮助。
举例来说,您要按名称订阅对象的通知。如果您使用非恒定字符串作为名称,则在确定谁对该字符串感兴趣时,发布通知的 一些定义
文字是一个值,根据定义是不可变的。例如: 最后一行的一些评论:
常量字符串为
1关键字 2这是运行时用于在Objective-C中发送所有消息的功能,因此可以用来更改对象的状态。
3示例:
4重写表达式的LLVM代码在RewriteModernObjC.cpp中为
5要查看 6为其他类创建编译时间常数会很容易,但是它需要编译器使用专门的子类。这将破坏与旧版Objective-C版本的兼容性。 sub> sub> 返回您的报价
它说文字容易出错。但这并不表示它们也较慢。相比:
在第二种情况下,我使用带有const指针的键,因此可以代替 如果您还希望常量字符串是全局字符串,请执行以下操作:
让我们使用C ++,因为我的Objective C完全不存在。 如果将字符串存储到常量变量中:
现在,当您调用方法时,使用的是my_string,而您使用的是字符串常量:
或者,您可以直接使用字符串文字调用这些方法:
可能是因为它们鼓励您使用字符串常量,原因是因为Objective C不会进行" interning";也就是说,当您在多个地方使用相同的字符串文字时,实际上是指向该字符串的单独副本的不同指针。 对于字典键,这将产生巨大的差异,因为如果我可以看到两个指针指向同一事物,则与进行整个字符串比较以确保字符串具有相等的值相比,这要便宜得多。 编辑:Mike,在C#中字符串是不可变的,并且具有相同值的文字字符串都以相同的字符串值结尾。我想对于字符串不可变的其他语言也是如此。在具有可变字符串的Ruby中,它们提供了一种新的数据类型:符号(" foo"与.foo,其中前者是可变字符串,而后者是常用于哈希键的不可变标识符)。 |
最新内容
相关内容
机器学习用java还是python?
机器学习用java还是python?,分析,环境,数据,培训,发展,机器,结果,控制台,生态环境,有用,机器学习用python更合适。机器学习不需要面向对象,不python字符串如何判空?
python字符串如何判空?,密码,培训,字符串,空格,字符,方法,两边,长度,用户名,全部,python判断字符串是否为空的方法:1、使用字符串长度判断len(python中如何数出字符串的字符个数
python中如何数出字符串的字符个数,培训,字符,字符串,个数,次数,方法,示例,字典,语法,以前,python中统计字符串中祝福个数的方法:1、使用len()python如何获取字符串最后一个字符
python如何获取字符串最后一个字符?,培训,字符串,方括号,字符,方法,引号,变量,数据类型,结尾,分配,python获取字符串最后一个字符的方法:字符python如何检测字符串是不是全为字
python如何检测字符串是不是全为字母?,检测,培训,字符串,字母,方法,字符,示例,语法,以上,更多,python中可以使用isalpha()方法检测字符串是不Python文件如何转换为字符串
Python文件如何转换为字符串,数据,主体,名字,培训,文件,字符串,末尾,方法,对象,语句,python文件如何转换为字符串的方法:一、最方便的方法是一Python中区分字符与字符串吗?
Python中区分字符与字符串吗?,数据,培训,数字,字符串,数据类型,字符,类型,语言,有所不同,布尔,python中不区分字符与字符串,与C语言相比,Pythonpython如何实现手动输入文字
python如何实现手动输入文字,培训,表达式,字符串,函数,整数,示例,语法,以上,参数,文字,python中可以使用input()函数接收用户输入的文字。函Python怎么把字符串变成数字格式
Python怎么把字符串变成数字格式,数字,培训,字符串,格式,方法,以上,更多,内容,python把字符串变成数字格式的方法:方法一:类中进行导入strinpython如何显示中文字体
python如何显示中文字体,地方,培训,文件,方法,之后,中文字体,中文,模块,声明,时候,python显示中文字体的方法:在这里,你可以选择2种不同的解决python3中字符串怎么切片
python3中字符串怎么切片,代码,培训,索引,字符,字符串,依此类推,切片,方括号,后面,倒数,python字符串直接在方括号([])中使用索引即可获取对学习编程Python用什么电脑
学习编程Python用什么电脑,电脑,数据,培训,基础,产品,以上,固态,经济基础,算法,电脑硬件,python对于电脑硬件基本没什么要求,单纯学Python的话