คำถามติดแท็ก ternary-operator

ตัวดำเนินการตามเงื่อนไขเป็นตัวดำเนินการด้านที่เป็นส่วนหนึ่งของไวยากรณ์สำหรับนิพจน์เงื่อนไขพื้นฐานในภาษาโปรแกรมต่างๆ มักเรียกกันทั่วไปว่าตัวดำเนินการ ternary หรือ inline if ภาษาที่แตกต่างกันมีไวยากรณ์ที่แตกต่างกันสำหรับโครงสร้างเดียวกัน แต่ทั้งหมดเลือกระหว่างหนึ่งในสองตัวเลือกตามเงื่อนไข

16
Java คืออะไร: ตัวดำเนินการที่เรียกและทำหน้าที่อะไร?
ฉันได้ทำงานกับ Java สองสามปี แต่จนถึงเมื่อเร็ว ๆ นี้ฉันไม่ได้ทำงานข้ามโครงสร้างนี้: int count = isHere ? getHereCount(index) : getAwayCount(index); นี่อาจเป็นคำถามที่ง่ายมาก แต่มีคนอธิบายได้ไหม ฉันจะอ่านมันได้อย่างไร ฉันค่อนข้างแน่ใจว่าฉันรู้ว่ามันทำงานอย่างไร ถ้าisHereเป็นจริงgetHereCount()เรียกว่า ถ้าisHereเป็นเท็จgetAwayCount()เรียกว่า แก้ไข? สิ่งก่อสร้างนี้เรียกว่าอะไร?

13
ฉันจะใช้ตัวดำเนินการ ternary (? :) ใน PHP เป็นชวเลขสำหรับ“ if / else” ได้อย่างไร
จากตัวอย่างจากหน้านี้ฉันมีตัวอย่างโค้ดที่ใช้งานได้และไม่ทำงานด้านล่าง รหัสการทำงานโดยใช้ifคำสั่ง: if (!empty($address['street2'])) echo $address['street2'].'<br />'; รหัสที่ไม่ทำงานโดยใช้ตัวดำเนินการ ternary: $test = (empty($address['street2'])) ? 'Yes <br />' : 'No <br />'; // Also tested this (empty($address['street2'])) ? 'Yes <br />' : 'No <br />'; อัปเดต หลังจากคำแนะนำของ Brian ฉันพบว่าการสะท้อนให้$testผลลัพธ์ที่คาดหวัง ผลงานต่อไปนี้อย่างจับใจ! echo (empty($storeData['street2'])) ? 'Yes <br />' : 'No <br />';

4
ตัวดำเนินการที่เกี่ยวข้องกับ Java เทียบกับ if / else ในความเข้ากันได้ <JDK8
เมื่อเร็ว ๆ นี้ฉันกำลังอ่านซอร์สโค้ดของ Spring Framework มีบางอย่างที่ฉันไม่เข้าใจอยู่ที่นี่: public Member getMember() { // NOTE: no ternary expression to retain JDK &lt;8 compatibility even when using // the JDK 8 compiler (potentially selecting java.lang.reflect.Executable // as common type, with that new base class not available on older JDKs) if (this.method != null) { …

5
Angularjs if-then-else การสร้างในนิพจน์
ฉันสามารถใช้ if-then-else construction (ternary-operator) ในนิพจน์ angularjs ได้หรือไม่เช่นฉันมี function $ scope.isExists (item) ที่ต้องส่งคืนค่าบูล ฉันต้องการอะไรแบบนี้ &lt;div ng-repeater="item in items"&gt; &lt;div&gt;{{item.description}}&lt;/div&gt; &lt;div&gt;{{isExists(item) ? 'available' : 'oh no, you don't have it'}}&lt;/div&gt; &lt;/div&gt; ฉันรู้ว่าฉันสามารถใช้ฟังก์ชันที่ส่งคืนสตริงได้ฉันสนใจที่จะใช้โครงสร้าง if-then-else ในนิพจน์ ขอบคุณ.

2
ตัวดำเนินการ Ternary ใน Java ประเมินเพียงนิพจน์เดียวตั้งแต่ Java 7 - Java 1.6 และต่ำกว่านั้นแตกต่างกันหรือไม่
การเตรียมตัวสำหรับการสอบ Oracle Certified Associate Java SE 8 Programmer 1 ฉันพบย่อหน้าต่อไปนี้เกี่ยวกับนิพจน์ด้านท้ายในคู่มือการศึกษาอย่างเป็นทางการ: การประเมินนิพจน์ Ternary ณ Java 7 นิพจน์ทางขวามือเดียวของตัวดำเนินการ ternary จะได้รับการประเมินที่รันไทม์ ในลักษณะที่คล้ายกับตัวดำเนินการลัดวงจรหากหนึ่งในสองนิพจน์ขวามือในตัวดำเนินการที่เกี่ยวข้องมีผลข้างเคียงก็อาจไม่สามารถใช้ในรันไทม์ได้ ขอยกตัวอย่างหลักการนี้ด้วยตัวอย่างต่อไปนี้: [... ] มันบอกว่ามีการประเมินเพียงหนึ่งในสองนิพจน์โดยแสดงให้เห็นด้วยตัวอย่างต่อไปนี้: int y = 1; int z = 1; int a = y &lt; 10 ? y++ : z++; ที่นี่yเพิ่มขึ้นเท่านั้นแต่zไม่เป็นไปตามที่คุณคาดหวัง สิ่งที่ฉันสะดุดคือจุดเริ่มต้นของย่อหน้า (ทำเครื่องหมายด้วยสีเหลือง) ซึ่งมีข้อความว่า "As of Java 7, ... …

7
Javascript ตัวดำเนินการ ternary ชวเลข
ฉันรู้ว่าใน php 5.3 แทนที่จะใช้ไวยากรณ์ตัวดำเนินการ ternary ซ้ำซ้อนนี้: startingNum = startingNum ? startingNum : 1 ... เราสามารถใช้ไวยากรณ์ชวเลขสำหรับตัวดำเนินการที่เกี่ยวข้องได้หากมี: startingNum = startingNum ?: 1 และฉันรู้เกี่ยวกับตัวดำเนินการ ternary ใน javascript: startingNum = startingNum ? startingNum : 1 ... แต่มีชวเลขไหม?

5
ความแตกต่างระหว่าง C # และตัวดำเนินการ ternary ของ Java (? :)
ฉันเป็นมือใหม่ C # และฉันเพิ่งพบปัญหา มีความแตกต่างระหว่าง C # และ Java เมื่อจัดการกับตัวดำเนินการ ternary ( ? :) ในส่วนรหัสต่อไปนี้เหตุใดบรรทัดที่ 4 จึงไม่ทำงาน คอมไพเลอร์แสดงข้อความแสดงข้อผิดพลาดของthere is no implicit conversion between 'int' and 'string'. บรรทัดที่ 5 ก็ใช้ไม่ได้เช่นกัน ทั้งสองListเป็นวัตถุไม่ใช่เหรอ? int two = 2; double six = 6.0; Write(two &gt; six ? two : six); //param: double Write(two &gt; six …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.