objective-c - 问号和冒号是什么意思(?: ternary operator) mean in objective-c?

标签 objective-c c syntax operators conditional-operator

这行代码是什么意思?

label.frame = (inPseudoEditMode) ? kLabelIndentedRect : kLabelRect;

?: 让我很困惑。

最佳答案

这是 C ternary operator (Objective-C 是 C 的超集):

label.frame = (inPseudoEditMode) ? kLabelIndentedRect : kLabelRect;

在语义上等价于

if(inPseudoEditMode) {
 label.frame = kLabelIndentedRect;
} else {
 label.frame = kLabelRect;
}

没有第一个元素的三元组(例如 variable ?: anotherVariable)与 (valOrVar != 0) 的含义相同吗? valOrVar : 另一个ValOrVar

关于objective-c - 问号和冒号是什么意思(?: ternary operator) mean in objective-c?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2595392/

相关文章:

iphone - iPhone 播放视频时内存泄漏

c++ - 为什么 MSVS 允许 NULL 作为纯虚函数说明符?

c++ - 为什么 operator= 不适用于具有新模板放置的标准类型?

c - 如何使用包含好的 pcap 结构

javascript - 两个 JS 示例之间的区别?

ios - 在第一次加载时隐藏 UITableView 的部分

objective-c - 如何在 Objective C 中使用 NSData 存储图像

ios - 更快地准备 iOS 相机

c - Gtk3:GtkFixed 中小部件的大小

c - 何时将 while 循环中的语句括在大括号内?