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

11
ทำไม + +,, =, * =, / = ตัวดำเนินการกำหนดผสมของ Java ไม่จำเป็นต้องส่ง
จนถึงวันนี้ฉันคิดอย่างนั้น: i += j; เป็นเพียงทางลัดสำหรับ: i = i + j; แต่ถ้าเราลองทำสิ่งนี้: int i = 5; long j = 8; จากนั้นi = i + j;จะไม่รวบรวม แต่i += j;จะรวบรวมได้ มันหมายความว่าในความเป็นจริงi += j;เป็นทางลัดสำหรับบางสิ่งบางอย่างเช่นนี้ i = (type of i) (i + j)?

8
กฎของสามคืออะไร
อะไรคัดลอกวัตถุหมายถึง? ตัวสร้างสำเนาและตัวดำเนินการกำหนดค่าการคัดลอกคืออะไร ฉันต้องประกาศตัวเองเมื่อใด ฉันจะป้องกันไม่ให้คัดลอกวัตถุของฉันได้อย่างไร

5
สำนวนคัดลอกและแลกเปลี่ยนคืออะไร?
สำนวนนี้คืออะไรและควรใช้เมื่อใด ปัญหาอะไรที่แก้ได้? สำนวนเปลี่ยนไปเมื่อใช้ C ++ 11 หรือไม่? แม้ว่ามันจะถูกกล่าวถึงในหลาย ๆ ที่ แต่เราก็ไม่มีคำถามและคำตอบว่า "มันคืออะไร" มันจึงเป็นเช่นนี้ นี่คือรายการบางส่วนของสถานที่ที่เคยกล่าวถึง: สำนวนการเข้ารหัส C ++ ที่คุณชื่นชอบคืออะไร: Copy-swap คัดลอกคอนสตรัคเตอร์และ = ตัวดำเนินการโอเวอร์โหลดใน C ++: เป็นฟังก์ชั่นทั่วไปที่เป็นไปได้หรือไม่? การคัดลอกข้อมูลคืออะไรและจะเพิ่มประสิทธิภาพสำนวนการคัดลอกและสลับ C ++: การจัดสรรอาเรย์ของวัตถุแบบไดนามิกหรือไม่?

7
อะไรคือความแตกต่างระหว่าง“ =” และ“ <-” ผู้ประกอบการที่ได้รับมอบหมายใน R?
อะไรคือความแตกต่างระหว่างผู้ประกอบการที่ได้รับมอบหมาย=และ&lt;-ใน R? ฉันรู้ว่าผู้ประกอบการแตกต่างกันเล็กน้อยตามตัวอย่างนี้แสดงให้เห็น x &lt;- y &lt;- 5 x = y = 5 x = y &lt;- 5 x &lt;- y = 5 # Error in (x &lt;- y) = 5 : could not find function "&lt;-&lt;-" แต่นี่คือความแตกต่างเท่านั้น?

2
การทำความเข้าใจอย่างแน่นอนเมื่อ data.table เป็นการอ้างอิงถึง (เทียบกับสำเนา) data.table อื่น
ฉันมีปัญหาเล็ก ๆ น้อย ๆ data.tableในการทำความเข้าใจคุณสมบัติที่ผ่านโดยการอ้างอิงของ การดำเนินการบางอย่างดูเหมือนจะ 'ทำลาย' ข้อมูลอ้างอิงและฉันต้องการที่จะเข้าใจว่าเกิดอะไรขึ้น ในการสร้างdata.tableจากที่อื่นdata.table(ผ่าน&lt;-จากนั้นอัปเดตตารางใหม่โดย:=ตารางเดิมจะถูกเปลี่ยนด้วยเช่นกันซึ่งเป็นไปตาม: ?data.table::copy และstackoverflow: แพ็คเกจการส่งผ่านข้อมูลอ้างอิงโดยผู้ปฏิบัติงาน นี่คือตัวอย่าง: library(data.table) DT &lt;- data.table(a=c(1,2), b=c(11,12)) print(DT) # a b # [1,] 1 11 # [2,] 2 12 newDT &lt;- DT # reference, not copy newDT[1, a := 100] # modify new DT print(DT) # DT is modified …


8
ตัวดำเนินการทางลัด“ or-assignment” (| =) ใน Java
ฉันมีการเปรียบเทียบที่ต้องทำใน Java มานานและฉันอยากรู้ว่าอย่างน้อยหนึ่งอย่างออกมาเป็นจริงหรือไม่ สตริงของการเปรียบเทียบเป็นเวลานานและยากที่จะอ่านดังนั้นฉันโพล่งขึ้นเพื่อให้สามารถอ่านและจะไปใช้ประกอบการทางลัดมากกว่า|=negativeValue = negativeValue || boolean boolean negativeValue = false; negativeValue |= (defaultStock &lt; 0); negativeValue |= (defaultWholesale &lt; 0); negativeValue |= (defaultRetail &lt; 0); negativeValue |= (defaultDelivery &lt; 0); ฉันคาดว่าnegativeValueจะเป็นจริงหากค่า &lt;something&gt; เริ่มต้นใด ๆ เป็นลบ ใช้ได้หรือไม่ มันจะทำตามที่ฉันคาดหวังหรือไม่? ฉันไม่เห็นมันกล่าวถึงบนไซต์ของ Sun หรือ stackoverflow แต่ดูเหมือนว่า Eclipse จะไม่มีปัญหากับมันและโค้ดจะคอมไพล์และรัน ในทำนองเดียวกันถ้าฉันต้องการทำการตัดกันเชิงตรรกะหลาย ๆ จุดฉันสามารถใช้&amp;=แทนได้&amp;&amp;หรือไม่?

8
อะไรคือแรงจูงใจสำหรับการมอบหมายงาน Scala ที่ประเมินเป็นหน่วยแทนที่จะเป็นค่าที่กำหนด
อะไรคือแรงจูงใจสำหรับการมอบหมายงาน Scala ที่ประเมินเป็นหน่วยแทนที่จะเป็นค่าที่กำหนด รูปแบบทั่วไปในการเขียนโปรแกรม I / O คือการทำสิ่งนี้: while ((bytesRead = in.read(buffer)) != -1) { ... แต่สิ่งนี้ทำไม่ได้ในสกาล่าเพราะ ... bytesRead = in.read(buffer) .. ส่งคืนหน่วยไม่ใช่ค่าใหม่ของ bytesRead ดูเหมือนเป็นสิ่งที่น่าสนใจที่จะละเว้นจากภาษาที่ใช้งานได้ ฉันสงสัยว่าทำไมถึงทำเช่นนั้น?

4
ทำไม int x {y = 5} จึงเป็นไปได้
int main() { int y; int x{ y = 5 }; //x is 5 } สิ่งนี้เป็นไปได้อย่างไรเนื่องจาก y = 5 ไม่ใช่นิพจน์ที่คำนวณได้? นอกจากนี้ทำไมคอมไพเลอร์หรือ IDE ไม่บ่นเกี่ยวกับ main () ไม่ส่งคืน int
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.