คำถามติดแท็ก language-features

คำถามเกี่ยวกับแง่มุมที่แตกต่างของภาษาคอมพิวเตอร์โดยเฉพาะอย่างยิ่งในวิธีที่พวกเขาเขียนหรือในความสามารถในการแสดงออกให้กับโปรแกรมเมอร์

5
ตัวดำเนินการอินสแตนซ์ Java ของการพิจารณาการสะท้อนและสิ่งที่กำหนดสะท้อน?
ฉันได้พูดคุยกับเพื่อนร่วมงานในวันนี้ไม่ว่าการใช้งานตัวดำเนินการ Java instanceofนั้นเป็นสิ่งที่สะท้อนออกมาหรือไม่ และการอภิปรายพัฒนาอย่างรวดเร็วในสิ่งที่กำหนดสะท้อน ดังนั้นคำจำกัดความของการสะท้อนคืออะไร? และการใช้งานของการinstanceofพิจารณา "ใช้การสะท้อน" คืออะไร? และนอกจากนี้หากinstanceofพิจารณาว่าเป็นเงาสะท้อนแล้วความหลากหลายนั้นก็ไม่ "ใช้การสะท้อน" เช่นกัน? ถ้าไม่ต่างกันคืออะไร

3
ใน C # เหตุใดจึงมีการประกาศตัวแปรภายในบล็อกลองในขอบเขต
ฉันต้องการเพิ่มข้อผิดพลาดในการจัดการ: var firstVariable = 1; var secondVariable = firstVariable; ด้านล่างจะไม่รวบรวม: try { var firstVariable = 1; } catch {} try { var secondVariable = firstVariable; } catch {} เหตุใดจึงจำเป็นสำหรับ try catch block ที่จะส่งผลต่อขอบเขตของตัวแปรเช่นเดียวกับบล็อคโค้ดอื่น ๆ เห็นแก่ความสอดคล้องกันมันจะสมเหตุสมผลหรือไม่ที่เราจะสามารถห่อโค้ดของเราด้วยการจัดการข้อผิดพลาดโดยไม่จำเป็นต้อง refactor

6
ฉันจะบอกได้อย่างไรว่าภาษาโปรแกรมคอมไพล์เป็นภาษาอื่น?
ฉันจะพูดเป็นภาษาอังกฤษได้อย่างไรว่าภาษาโปรแกรมนั้นสามารถคอมไพล์เป็นภาษาโปรแกรมอื่นได้? ตัวอย่างสามารถHaxe บนเว็บไซต์ภาษาถูก decribed เป็น "Multiplatform": หลายแพลตฟอร์ม: Haxe สามารถรวบรวมไปยังแพลตฟอร์มการเขียนโปรแกรมยอดนิยมทั้งหมดได้ด้วยการรวบรวมอย่างรวดเร็ว - JavaScript, Flash, NekoVM, PHP, C ++, C # และ Java (เร็ว ๆ นี้) แต่หลายแพลตฟอร์มสามารถเข้าใจผิดเป็นฮาร์ดแวร์หรือแพลตฟอร์มซอฟต์แวร์ (win, mac, linux) ดังนั้นคำที่เหมาะสมที่สุดที่อธิบายความสามารถนี้คืออะไร?

24
ประเภทที่น่าสนใจหรือไม่เหมือนใครในภาษาการเขียนโปรแกรม? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงอภิปรายโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา เรามีจำนวนเต็มจำนวนจุดลอยตัวสตริงและชนิดทศนิยมที่เห็นเป็นครั้งคราวทั้งหมด ประเภทที่แปลกประหลาดหรือมีประโยชน์ที่สุดที่คุณพบมีประโยชน์หรือไม่?

1
ความคืบหน้าของบันทึก Haskell คืออะไร?
เมื่อเร็ว ๆ นี้ฉันได้พบปัญหาของเร็กคอร์ดของ Haskell อีกครั้งโดยเฉพาะชื่อฟิลด์ที่ไม่ซ้ำใคร (มันเป็นความเจ็บปวด ... ) ฉันได้อ่านข้อเสนอสำหรับเร็กคอร์ดใน Haskellจาก SPJ และ Greg Morrisett แต่การอัปเดตครั้งล่าสุดในปี 2003 กระดาษอีกเล่มหนึ่งชื่อLightweight Extensible Records สำหรับ Haskellจาก SPJ และ Mark Jones ยิ่งแก่กว่า: มาจากเวิร์กช็อป Haskell ในปี 1999 ตอนนี้ฉันสงสัยว่ากระบวนการให้ระเบียนใหม่ของ Haskell มีความคืบหน้าหรือไม่ ไม่มีใครรู้อะไรเกี่ยวกับมันหรือใครสามารถชี้ให้ฉันไปอ่านเพิ่มเติมหรือไม่

2
ในการเรียงตัวอักษรสตริงที่อยู่ติดกัน
C และ C ++ รวบรวมตัวอักษรสตริงที่อยู่ติดกันเป็นตัวอักษรสตริงเดียว ตัวอย่างเช่นนี้ "Some text..." "and more text" เทียบเท่ากับ: "Some text...and more text" ในภาษาตระกูล C อื่น ๆ เช่น C # หรือ Java นี่เป็นข้อผิดพลาดทางไวยากรณ์ (ซึ่งก็ดีมาก BTW) เหตุผล / เหตุผลทางประวัติศาสตร์สำหรับ C และ C ++ คืออะไร

4
เหตุใดจึงไม่มีตัวแก้ไขการเข้าถึง 'คลาสย่อยเท่านั้น' ใน Java
ใน Java มีตัวดัดแปลงการเข้าถึงที่ใช้ได้สี่วิธีสำหรับวิธีการ: public - คลาสใด ๆ สามารถใช้วิธีนี้ protected - คลาสในแพ็คเกจเดียวกันและคลาสย่อยในแพ็คเกจใด ๆ สามารถใช้วิธีนี้ได้ private - คลาสนี้เท่านั้นที่สามารถใช้วิธีนี้ no modifier ("แพ็คเกจส่วนตัว") - เฉพาะคลาสในแพ็คเกจเดียวกันเท่านั้นที่สามารถใช้วิธีนี้ได้ สิ่งที่เกิดขึ้นบ่อยครั้งคือฉันต้องการมีวิธีการที่มีประโยชน์ในซูเปอร์คลาสซึ่งคลาสย่อยทั้งหมดสามารถใช้ได้ แต่มันจะไม่สมเหตุสมผลสำหรับคลาสอื่น ๆ ในการเข้าถึงวิธีการนี้ ดังนั้นฉันจึงต้องประกาศวิธีการที่มีประโยชน์เหล่านี้ในซูเปอร์คลาสpublicหรือprotectedซึ่งเปิดเผยให้คลาสอื่น ๆ ทั้งหมดอย่างน้อยในแพ็คเกจ แม้ว่าคลาสย่อยเหล่านี้จะถูกใช้เพื่อการใช้งานเท่านั้น มีเหตุผลที่ไม่มีsubclasses-onlyตัวดัดแปลงการเข้าถึงใน Java หรือไม่? ดูเหมือนแปลกมากสำหรับฉัน ฉันพลาดอะไรไปรึเปล่า? นอกจากนี้subclasses-onlyตัวดัดแปลงการเข้าถึงจะมีประโยชน์เมื่อคุณต้องการเปิดเผยตัวแปรเฉพาะคลาสย่อย ซึ่งสำหรับฉันเกิดขึ้นมาก

11
ทำไม Python จึงแนะนำให้ใช้ภาษาการเขียนโปรแกรมระดับเริ่มต้น? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันได้อ่านคำถามเพิ่มเติมจาก P.SE ที่โปรแกรมเมอร์ผู้เริ่มต้นควรเลือก Python เป็นภาษาโปรแกรมแรกของพวกเขา อย่าเข้าใจฉันผิดฉันชอบ Python ผมชอบมันมาก! แต่ปรัชญามันหมุนรอบ "เราทุกคนยินยอมผู้ใหญ่ที่นี่" จากประสบการณ์ / ความรู้ในมุมมองโปรแกรมเมอร์เริ่มต้นไม่ใช่ผู้ใหญ่ ซึ่งหมายความว่าเป็นการง่ายกว่าที่จะยิงตัวเองและเก็บนิสัยที่ไม่ดีแม้ว่าคุณจะมีชีวิตรอดจากบาดแผล ฉันคิดว่าในภาษาที่ "นิ่งกว่า" มันจะยากกว่าถ้าจะยิงตัวเองที่เท้าเพราะมันจะถูก จำกัด มากขึ้น กลับไปที่คำถามของฉัน ทำไม Python จึงแนะนำให้ใช้ภาษาการเขียนโปรแกรมระดับเริ่มต้น? อะไรคือประเด็นที่ทำให้มันดีสำหรับการสอนภาษาโปรแกรม หรือ ... มันเป็นความชอบส่วนตัวของผู้ให้คำปรึกษา?

10
พารามิเตอร์ทางเลือกมีประโยชน์หรือเป็นอุปสรรคต่อการบำรุงรักษาแอปพลิเคชันหรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ตามที่ระบุไว้ในชื่อเรื่องพารามิเตอร์ที่เป็นตัวเลือกเช่นที่ใช้ใน C #เป็นประโยชน์หรือเป็นอุปสรรคต่อการบำรุงรักษาแอปพลิเคชันและควรหลีกเลี่ยงเนื่องจากสามารถทำให้โค้ดเข้าใจยากขึ้น?

7
ใน Java ทำไมสมาชิกที่ได้รับความคุ้มครองทำให้เข้าถึงคลาสของแพ็คเกจเดียวกันได้
จากเอกสารอย่างเป็นทางการ... แพ็คเกจ Class Class ย่อย YYYY สาธารณะ ป้องกัน YYYN ไม่มีตัวแก้ไข YYNN YNNN ส่วนตัว สิ่งนี้คือฉันจำไม่ได้ว่ามีกรณีการใช้งานที่ฉันต้องการเข้าถึงสมาชิกที่ได้รับความคุ้มครองจากชั้นเรียนภายในแพ็คเกจเดียวกัน อะไรคือสาเหตุของการนำไปใช้นี้? แก้ไข:เพื่อชี้แจงฉันกำลังมองหากรณีการใช้งานเฉพาะที่ทั้งคลาสย่อยและคลาสภายในแพ็คเกจเดียวกันจำเป็นต้องเข้าถึงเขตข้อมูลหรือวิธีการป้องกัน package some.package; public class A { protected void protectedMethod(){ // do something } } package another.package; public class B extends A{ public void someMethod(){ // accessible because B is a subclass of A protectedMethod(); …

10
ทำไมภาษาที่พิมพ์แบบไดนามิกไม่ให้นักพัฒนาระบุประเภท?
ภาษาที่พิมพ์แบบไดนามิกที่ฉันรู้ว่าไม่ให้นักพัฒนาระบุประเภทของตัวแปรหรืออย่างน้อยก็มีการสนับสนุนที่ จำกัด มากสำหรับสิ่งนั้น ตัวอย่างเช่น JavaScript ไม่มีกลไกใด ๆ ในการบังคับใช้ตัวแปรประเภทต่างๆเมื่อสะดวกในการใช้งาน PHP ช่วยให้คุณระบุบางชนิดของการขัดแย้งวิธี แต่มีวิธีที่จะใช้ชนิดพื้นเมือง (ไม่int, stringฯลฯ ) สำหรับข้อโต้แย้งและมีวิธีการที่จะบังคับใช้สำหรับประเภทอื่นใดนอกเหนือจากการขัดแย้งใด ในเวลาเดียวกันมันจะสะดวกที่จะมีทางเลือกที่จะระบุในบางกรณีประเภทของตัวแปรในภาษาที่พิมพ์แบบไดนามิกแทนการทำประเภทการตรวจสอบด้วยตนเอง ทำไมมีข้อ จำกัด ดังกล่าว เป็นเพราะเหตุผลด้านเทคนิค / ประสิทธิภาพ (ฉันคิดว่ามันเป็นในกรณีของ JavaScript) หรือสำหรับเหตุผลทางการเมืองเท่านั้น (ซึ่งฉันเชื่อว่าเป็นกรณีของ PHP) นี่เป็นกรณีสำหรับภาษาที่พิมพ์แบบไดนามิกอื่น ๆ ที่ฉันไม่คุ้นเคยหรือไม่ แก้ไข:ทำตามคำตอบและความคิดเห็นต่อไปนี้เป็นตัวอย่างสำหรับการชี้แจง: สมมติว่าเรามีวิธีการต่อไปนี้ใน PHP ธรรมดา: public function CreateProduct($name, $description, $price, $quantity) { // Check the arguments. if (!is_string($name)) throw new Exception('The …

10
ช่วยฉันติดตามสิ่งที่ฉันพลาดไปตั้งแต่ Java 1.4.2 [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันกำลังจะเริ่มต้นอาชีพอาชีพครั้งแรกในฐานะนักพัฒนาซอฟต์แวร์และฉันมีแนวโน้มที่จะเขียนโค้ด Java จำนวนมาก ฉันไม่รู้มากเกี่ยวกับสิ่งที่ฉันจะเขียนเฉพาะและนอกจากนี้ฉันมีความสนใจในวงกว้างเมื่อพูดถึงโค้ด ด้วยเหตุผลที่ไม่ควรพูดถึงการฝึกงานครั้งสุดท้ายของฉันทำให้ฉันเข้ารหัสเฉพาะ Java 1.3 และ 1.4 SDK เท่านั้น นอกจากนี้การศึกษาในมหาวิทยาลัยของฉันยังเน้นเรื่องอัลกอริธึมโครงสร้างข้อมูลและทฤษฎีอื่น ๆ ไม่ใช่คุณสมบัติทางภาษาหรือห้องสมุด ดังนั้นด้วยความในใจข้างต้นคุณสมบัติอะไร, คลาส, และอื่น ๆ ใน Java เวอร์ชันปัจจุบัน (ตอนนี้เรากำลังใช้เลขอะไรอยู่) จะคุ้มค่ากับเวลาที่ฉันอ่านและทำไม? ฉันพลาดอะไรไปตั้งแต่ 1.4.2 ที่ทำให้ชีวิตของคุณในฐานะโปรแกรมเมอร์ง่ายขึ้น? ตัวอย่างและเรื่องราวของวิธีที่คุณค้นพบแพคเกจเฉพาะหรือบางอย่างและนำไปใช้จะดีมาก

5
มีจุดประสงค์เฉพาะสำหรับรายการต่างกันหรือไม่?
มาจากพื้นหลัง C # และ Java ฉันคุ้นเคยกับรายการของฉันที่เป็นเนื้อเดียวกันและนั่นสมเหตุสมผลสำหรับฉัน เมื่อฉันเริ่มยก Lisp ฉันสังเกตเห็นว่ารายการต่างกัน เมื่อฉันเริ่มที่จะวนรอบด้วยdynamicคำสำคัญใน C # ฉันสังเกตว่าใน C # 4.0 อาจมีรายการที่ต่างกันเช่นกัน: List<dynamic> heterogeneousList คำถามของฉันคือประเด็นอะไร ดูเหมือนว่ารายการต่างกันจะมีค่าใช้จ่ายมากขึ้นเมื่อทำการประมวลผลและถ้าคุณต้องการจัดเก็บประเภทที่แตกต่างกันในที่เดียวคุณอาจต้องใช้โครงสร้างข้อมูลที่แตกต่างกัน ความไร้เดียงสาของฉันคือการเลี้ยงใบหน้าที่น่าเกลียดหรือมีช่วงเวลาที่เป็นประโยชน์เมื่อมีรายการที่ต่างกันหรือไม่?

3
ทำไมคุณต้อง“ ตัวเอง” ใน Python เพื่ออ้างถึงตัวแปรอินสแตนซ์?
ฉันเขียนโปรแกรมเป็นภาษาต่างๆเช่น Java, Ruby, Haskell และ Python ฉันต้องสลับไปมาระหว่างหลายภาษาต่อวันเนื่องจากโครงการที่ฉันทำงานอยู่ ตอนนี้ปัญหาคือฉันมักจะลืมที่จะเขียนselfเป็นพารามิเตอร์แรกในนิยามฟังก์ชั่นใน Python เดียวกันกับวิธีการโทรบนวัตถุเดียวกัน ที่กล่าวว่าฉันค่อนข้างประหลาดใจกับวิธีการของ Python นี้ โดยทั่วไปเราต้องพิมพ์ให้มากขึ้นเพื่อทำสิ่งต่าง ๆ ในภาษาอย่าง Java และ Ruby สิ่งต่าง ๆ ทำได้ง่ายโดยอ้างอิงตัวแปรในวัตถุปัจจุบันโดยอัตโนมัติ คำถามของฉันคือเหตุใดจึงselfจำเป็น มันเป็นตัวเลือกสไตล์อย่างหมดจดหรือมีสาเหตุที่ Python ไม่สามารถให้คุณละเว้นselfวิธีที่ Java และ C ++ ปล่อยให้คุณละเว้นได้this?

2
เหตุใดอาร์เรย์ความยาวผันแปรจึงเป็นทางเลือกใน C 2011
เมื่อ VLA เปิดตัวในปี 1999 ฉันคิดว่ามันเป็นนวัตกรรมที่ยอดเยี่ยมสำหรับภาษา อย่างไรก็ตามหลังจากที่ได้เรียนรู้ว่ามันเป็นตัวเลือกใน C 2011 ฉันสงสัยว่าสิ่งใดที่นำไปสู่การเปลี่ยนแปลงสถานะและถ้ามันหมายความว่าฟีเจอร์นั้นมุ่งไปที่ความล้าสมัย ถ้าเป็นเช่นนั้นมีความคิดเทียบเท่ากับการจัดการอัตโนมัติของข้อมูลที่มีขนาดแบบไดนามิกที่กำลังพิจารณาที่จะแทนที่หรือไม่? ฉันพยายามค้นหาเอกสารเหตุผล C 2011 แต่ดูเหมือนยังไม่ได้เผยแพร่

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