gpt4 book ai didi

objective-c - 编译器将如何解释此语句?

转载 作者:行者123 更新时间:2023-12-01 18:30:19 26 4
gpt4 key购买 nike

在XCode 4.2中,我发现可以编写如下语句:

[obj = obj method];

并且对此没有错误或警告。

那么,我想知道编译器将如何解释这一点?是否与以下内容相同:
obj = [obj method];

最佳答案

调高警告等级。 Clang会发出警告(-Wself-assign):

warning: explicitly assigning a variable of type 'NSObject *' to itself [-Wself-assign]
[obj = obj method];

它与 obj = [obj method];不同。它被解释为:
obj = obj;
[obj method];

编译器可以省略自赋值。也就是说,该程序打印 a:
NSString * a = @"a";
NSString * b = @"b";
NSLog(@"%@", b = a);

…但是为什么要使用这个确切的语句编写程序?对于许多人来说,解释或只是笨拙都会令人困惑。

关于objective-c - 编译器将如何解释此语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9733224/

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