就非常直观的理解,为真,?号,否则:号
我们再来看那个类似火星文的东西:
num = isMaster ? (p1 ? (p2 ? 2 : 3) : (p2 ? 1 : 4)) : (p1 ? (p2 ? 4 : 1) : (p2 ? 3 : 2));
isMaster为true,就是(p1 ? (p2 ? 2 : 3) : (p2 ? 1 : 4)) ,否则就是(p1 ? (p2 ? 4 : 1) : (p2 ? 3 : 2))
p1为true,就是(p2 ? 2 : 3),否则就是(p2 ? 1 : 4)
…………
依次扩散,其实你会发现一个规律,没发现也没关系,我来帮你总结
我一眼就可以看出:
isMaster为true,p1为true,p2为true的时候,num等于2
isMaster为true,p1为true,p2为false的时候,num等于3
isMaster为true,p1为false,p2为true的时候,num等于1
isMaster为true,p1为false,p2为false的时候,num等于4
isMaster为false,p1为true,p2为true的时候,num等于4
isMaster为false,p1为true,p2为false的时候,num等于1
isMaster为false,p1为false,p2为true的时候,num等于3
isMaster为false,p1为false,p2为false的时候,num等于2
就这么简单,或许你还能发现更多的规律,其实理解?:的时候,不要把他当作if else,记住为true,前面的,否则后面的
涉及太复杂的类型,判断也不要用?:,但是是一些数字,逻辑值等,用用 ?: ,效果还是很不错的!










