面试题答案
一键面试表达式概念
表达式是由运算符和操作数组成的代码片段,它会返回一个值。操作数可以是变量、常量或函数调用等,运算符用于对操作数进行运算。例如 3 + 5
,这里 3
和 5
是操作数,+
是运算符,整个 3 + 5
就是一个表达式,它返回值 8
。
表达式举例
int a = 10;
int b = 20;
int result = a + b; // a + b 是表达式,返回值 30 赋给 result
语句概念
语句是执行特定操作的基本代码单元,它可以改变程序状态或控制程序流程。语句以分号 ;
结尾,一条语句可以包含一个或多个表达式。语句不一定有返回值。
语句举例
NSLog(@"Hello, World!"); // 这是一条语句,调用 NSLog 函数输出字符串,虽然 NSLog 有返回值,但这里主要作用是执行输出操作
int num = 5; // 声明变量并赋值,这是一条语句,将 5 赋值给 num 变量
类方法调用场景分析
假设我们有一个类 MyClass
,有一个类方法 classMethod
。
@interface MyClass : NSObject
+ (NSString *)classMethod;
@end
@implementation MyClass
+ (NSString *)classMethod {
return @"Result from class method";
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *str = [MyClass classMethod]; // [MyClass classMethod] 是表达式,返回一个 NSString 对象,整个这一行是一条语句,将表达式返回值赋给 str 变量
NSLog(@"%@", str); // 这是一条语句,输出 str 的值
}
return 0;
}
在 NSString *str = [MyClass classMethod];
中,[MyClass classMethod]
属于表达式,因为它返回一个 NSString
对象。而 NSString *str = [MyClass classMethod];
整体属于语句,它完成了变量声明、赋值等操作。NSLog(@"%@", str);
也是一条语句,用于执行输出操作。