我正在阅读不同语言的三元运算符,并注意到Javascript部分中有趣的内容. http://en.wikipedia.org/wiki/%3F:#JavaScript
JavaScript中的条件运算符具有与其他BCPL派生变体相同的语法和优先级结构,但语义中存在显着差异:它返回l值.
第一句话说javascript中三元的返回是一个左值,所以我尝试了一些例子,结果很奇怪(在chrome控制台中).
鉴于:
var a = { 'yo' : 'momma' }
var b = { 'yo' : 'cool' }
var bool = true
(bool? a : b).yo = 'LLJ'
//a is now { 'yo' : 'LLJ' }
(bool? a.yo : b.yo) = 'LLJ' //throws a reference error
Run Code Online (Sandbox Code Playgroud)
为什么第一次工作和第二次工作失败?(逻辑上它们是相同的陈述,不是吗?)
我有一个应用程序,人们可以直接从它报告错误,但我希望用户能够提交构建应用程序的git hash.Xcode是否公开了包含此信息的#define,或者我是否必须将其包含在某些自定义构建脚本中?