gpt4 book ai didi

objective-c - 为什么使用 'literal syntax' 创建的实例被称为 'literals' ?

转载 作者:行者123 更新时间:2023-12-02 09:34:42 27 4
gpt4 key购买 nike

令我困扰的是为什么术语“literal”被用来指代NSStringNSArray等类的实例。我只看到了用于引用 NSString 的术语,并且天真地认为它与“字面上”是一个字符串(位于引号之间)有关。抱歉,如果这听起来很可悲,但这就是我一直在想的。

今天我了解到 NSArray 的某些实例也可以称为文字实例,即使用“文字语法”创建的类的实例。

最佳答案

正如 @Linuxios 所指出的,文字语法内置于该语言中。不过,它们比你想象的要广泛。文字仅意味着在源中编码的实际值。所以 ObjC 中有相当多的文字语法。例如:

  • 1 - 整数
  • 1.0 - 双
  • 1.0f - float
  • “a” - C 字符串
  • @"a" - NSString
  • @[] - NSArray
  • ^{} - 函数

是的, block 只是函数文字。它们是可分配给符号名称(例如变量或常量)的匿名值。

一般来说,文字可以存储在文本段中,并在编译时(而不是运行时)计算。如果我没记错的话,数组文字目前已扩展为等效代码并在运行时求值,但 @"..." 字符串文字作为静态数据编码到二进制文件中(至少现在是;据我所知,非 Apple 版本的 gcc 用于对实际函数调用进行编码以构造静态字符串)。

关于objective-c - 为什么使用 'literal syntax' 创建的实例被称为 'literals' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28330266/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com