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

คุณลักษณะของภาษาเป็นลักษณะที่แตกต่างกันของภาษาโปรแกรมเช่นกฎการผูกการออกแบบคำศัพท์หรือแง่มุมของระบบชนิด

25
เหตุใด C # ไม่อนุญาตให้ใช้วิธีการแบบคงที่เพื่อใช้ส่วนต่อประสาน
เหตุใด C # จึงออกแบบวิธีนี้ ตามที่ฉันเข้าใจอินเทอร์เฟซจะอธิบายพฤติกรรมเท่านั้นและมีจุดประสงค์ในการอธิบายข้อผูกพันตามสัญญาสำหรับคลาสที่ใช้อินเทอร์เฟซที่มีการใช้งานพฤติกรรมบางอย่าง หากคลาสต้องการใช้พฤติกรรมนั้นในวิธีการแชร์ทำไมถึงไม่ควรใช้ นี่คือตัวอย่างของสิ่งที่ฉันมีอยู่ในใจ: // These items will be displayed in a list on the screen. public interface IListItem { string ScreenName(); ... } public class Animal: IListItem { // All animals will be called "Animal". public static string ScreenName() { return "Animal"; } .... } public …

21
คำหลัก 'คงที่' ทำอะไรในชั้นเรียน
เพื่อเป็นการเฉพาะฉันได้ลองใช้รหัสนี้: package hello; public class Hello { Clock clock = new Clock(); public static void main(String args[]) { clock.sayTime(); } } แต่มันทำให้เกิดข้อผิดพลาด ไม่สามารถเข้าถึงฟิลด์ที่ไม่คงที่ในวิธีหลักคงที่ ดังนั้นฉันจึงเปลี่ยนการประกาศของclockนี้: static Clock clock = new Clock(); และมันก็ใช้งานได้ การใส่คำหลักนั้นไว้ข้างหน้าหมายถึงอะไร? มันจะทำอะไรและ / หรือ จำกัด ในแง่ของสิ่งที่สามารถทำได้กับวัตถุนั้น?

19
นิพจน์กับคำชี้แจง
ฉันถามเกี่ยวกับ c # แต่ฉันคิดว่ามันเหมือนกันในภาษาอื่น ๆ ส่วนใหญ่ ใครบ้างมีคำจำกัดความที่ดีของการแสดงออกและงบและสิ่งที่แตกต่างกันคืออะไร?

10
คำสั่ง python“ พร้อม” ออกแบบมาเพื่ออะไร?
ฉันเจอwithคำสั่งPython เป็นครั้งแรกในวันนี้ ฉันใช้ Python เบา ๆ เป็นเวลาหลายเดือนและไม่รู้ด้วยซ้ำว่ามันมีอยู่จริง! ด้วยสถานะที่ค่อนข้างคลุมเครือฉันคิดว่ามันคุ้มค่าที่จะถามว่า: withคำสั่งPython ที่ออกแบบมาเพื่อใช้คืออะไร? คุณใช้มันทำอะไร? มี gotchas ใด ๆ ที่ฉันต้องระวังหรือต่อต้านรูปแบบทั่วไปที่เกี่ยวข้องกับการใช้งานหรือไม่? ใด ๆ กรณีที่มีการใช้งานที่ดีขึ้นtry..finallyกว่าwith? ทำไมมันไม่ใช้กันอย่างแพร่หลายมากขึ้น? คลาสไลบรารีมาตรฐานใดที่เข้ากันได้กับมัน

30
มีการใช้งานที่ถูกต้องสำหรับคำสั่ง "กับ" ของ JavaScript หรือไม่
ความคิดเห็นของ Alan Stormในการตอบสนองต่อคำตอบของฉันเกี่ยวกับwithคำสั่งทำให้ฉันคิด ฉันไม่ค่อยพบเหตุผลที่จะใช้คุณลักษณะภาษานี้โดยเฉพาะและไม่เคยคิดมากว่าจะสร้างปัญหาได้อย่างไร ตอนนี้ฉันอยากรู้ว่าฉันจะใช้อย่างมีประสิทธิภาพได้withอย่างไรในขณะที่หลีกเลี่ยงหลุมพราง คุณพบwithคำสั่งที่มีประโยชน์ที่ไหน

17
JavaScript Hashmap เทียบเท่า
ชัดเจนในการปรับปรุง 3 ในคำตอบนี้สัญกรณ์นี้: var hash = {}; hash[X] ไม่จริงกัญชาวัตถุX; จริงๆแล้วมันจะแปลงXเป็นสตริง (ผ่านทาง.toString()ถ้าเป็นวัตถุหรือมีการแปลงในตัวสำหรับประเภทดั้งเดิมต่างๆ) แล้วดูสตริงนั้นโดยไม่ต้องแปลงเป็น " hash" ความเท่าเทียมกันของวัตถุยังไม่ได้รับการตรวจสอบ - หากวัตถุสองชิ้นที่แตกต่างกันมีการแปลงสตริงเหมือนกันพวกเขาก็จะเขียนทับกัน ให้นี้ - มีการใช้งานที่มีประสิทธิภาพของ hashmaps ใน javascript หรือไม่ (ตัวอย่างเช่นผลการค้นหาครั้งที่ 2 ของ Google ที่ให้javascript hashmapผลการดำเนินการซึ่งเป็น O (n) สำหรับการดำเนินการใด ๆ ผลการทดสอบอื่น ๆ นั้นไม่สนใจความจริงที่ว่าวัตถุที่แตกต่างกัน

12
วิธีการใช้รายการใน R อย่างถูกต้อง?
พื้นหลังโดยย่อ: ภาษาการเขียนโปรแกรมร่วมสมัยส่วนใหญ่ (มากที่สุด) ที่ใช้กันอย่างแพร่หลายมีอย่างน้อยหนึ่ง ADTs [ประเภทข้อมูลนามธรรม] โดยทั่วไปโดยเฉพาะ สตริง (ลำดับประกอบด้วยอักขระ) รายการ (ชุดของค่าสั่ง) และ ชนิดที่ยึดตามแผนที่ (อาร์เรย์ที่ไม่ได้เรียงลำดับที่จับคู่คีย์กับค่า) ในภาษาการเขียนโปรแกรม R ทั้งสองจะถูกนำมาใช้เป็นcharacterและvectorตามลำดับ เมื่อฉันเริ่มเรียนรู้ R มีสองสิ่งที่เห็นได้ชัดเจนตั้งแต่เริ่มต้น: listเป็นประเภทข้อมูลที่สำคัญที่สุดใน R (เพราะเป็นคลาสผู้ปกครองสำหรับ R data.frame) และที่สองฉันไม่เข้าใจวิธีการทำงานอย่างน้อย ไม่ดีพอที่จะใช้อย่างถูกต้องในรหัสของฉัน สำหรับสิ่งหนึ่งที่ดูเหมือนว่าlistประเภทข้อมูลของ R คือการใช้แผนที่ ADT ( dictionaryใน Python, NSMutableDictionaryObjective C, hashPerl และ Ruby, object literalJavascript และอื่น ๆ ) ตัวอย่างเช่นคุณสร้างพวกเขาเช่นเดียวกับที่คุณทำกับพจนานุกรม Python โดยส่งผ่านคู่ของคีย์ - ค่าไปยังตัวสร้าง (ซึ่งใน …

5
อะไรคือความแตกต่างระหว่างอินเตอร์เฟสและ @interface ใน java?
ฉันยังไม่ได้สัมผัส Java ตั้งแต่ใช้ JBuilder ในช่วงปลายยุค 90 ในขณะที่อยู่ที่มหาวิทยาลัยดังนั้นฉันจึงรู้สึกไม่ค่อยดีไม่ว่าจะด้วยวิธีใดก็ตามฉันได้ทำงานกับโปรเจ็กต์ขนาดเล็กในสัปดาห์นี้และใช้ Intellij IDEA เป็น IDE ของฉัน สำหรับการเปลี่ยนแปลงของการก้าวจากการพัฒนา. net ปกติของฉัน ฉันสังเกตเห็นว่ามันรองรับการเพิ่มอินเตอร์เฟสและ @interfaces @interface คืออะไรและมันแตกต่างจากอินเตอร์เฟสปกติอย่างไร public interface Test { } เมื่อเทียบกับ public @interface Test { } ฉันได้ทำการค้นหาเล็กน้อย แต่ไม่พบข้อมูลที่เป็นประโยชน์มากมายที่อ้างถึง @interface

5
คำหลัก“ นี้” ทำงานอย่างไรภายในฟังก์ชั่น
ฉันเพิ่งเจอสถานการณ์ที่น่าสนใจใน JavaScript ฉันมีคลาสที่มีวิธีการที่กำหนดหลายวัตถุโดยใช้สัญกรณ์ตามตัวอักษร ภายในวัตถุเหล่านั้นthisจะมีการใช้ตัวชี้ จากพฤติกรรมของโปรแกรมฉันได้อนุมานว่าthisตัวชี้หมายถึงคลาสที่มีการเรียกใช้เมธอดไม่ใช่วัตถุที่ถูกสร้างขึ้นโดยตัวอักษร สิ่งนี้ดูเหมือนว่าจะเป็นข้อแม้ว่ามันจะเป็นวิธีที่ฉันคาดว่ามันจะทำงาน นี่เป็นพฤติกรรมที่กำหนดไว้หรือไม่? เบราว์เซอร์ปลอดภัยหรือไม่? มีเหตุผลใดบ้างที่มีเหตุผลว่าทำไมมันถึงเกินกว่า "ข้อมูลจำเพาะกล่าวเช่นนั้น" (เช่นเป็นผลมาจากการตัดสินใจ / ปรัชญาการออกแบบที่กว้างขึ้น)? ตัวอย่างโค้ดแบบ Pared-down: // inside class definition, itself an object literal, we have this function: onRender: function() { this.menuItems = this.menuItems.concat([ { text: 'Group by Module', rptletdiv: this }, { text: 'Group by Status', rptletdiv: this }]); // …

13
DateTime.Now vs. DateTime.UtcNow
ฉันสงสัยว่าหลักการของคุณสมบัติทั้งสองนี้ทำงานอย่างไร ฉันรู้ว่าตัวที่สองเป็นสากลและโดยทั่วไปไม่ได้จัดการกับเขตเวลา แต่ใครสามารถอธิบายรายละเอียดว่าพวกเขาทำงานอย่างไรและควรใช้อันไหนในสถานการณ์สมมติ

6
SQL หรือแม้แต่ TSQL ทัวริงเสร็จสมบูรณ์หรือไม่
สิ่งนี้เกิดขึ้นที่สำนักงานวันนี้ ฉันไม่มีแผนที่จะทำสิ่งนั้น แต่ในทางทฤษฎีคุณสามารถเขียนคอมไพเลอร์ใน SQL ได้ไหม? เมื่อฉันมองแวบแรกมันก็ดูจะสมบูรณ์แม้ว่าจะมีปัญหามากมายสำหรับชั้นเรียน ถ้ามันไม่ได้ทำให้เสร็จสมบูรณ์มันจะต้องมีอะไรบ้าง? หมายเหตุ: ฉันไม่มีความปรารถนาที่จะทำอะไรเช่นเขียนคอมไพเลอร์ใน SQL ฉันรู้ว่ามันเป็นเรื่องโง่ที่จะทำดังนั้นถ้าเราสามารถหลีกเลี่ยงการอภิปรายฉันจะขอบคุณมัน

17
มีอินเทอร์เฟซมากกว่าวิธีการที่ถูกต้องหรือไม่
ดังนั้นสมมติว่าฉันมีอินเทอร์เฟซนี้: public interface IBox { public void setSize(int size); public int getSize(); public int getArea(); //...and so on } และฉันมีคลาสที่ใช้งาน: public class Rectangle implements IBox { private int size; //Methods here } ถ้าฉันต้องการใช้อินเทอร์เฟซ IBox ฉันไม่สามารถสร้างอินสแตนซ์ของมันได้ตามจริง: public static void main(String args[]) { Ibox myBox=new Ibox(); } ขวา? ดังนั้นฉันต้องทำสิ่งนี้จริง: public static void …

13
อะไรคือความแตกต่างระหว่างชนิด“ ทั่วไป” ใน C ++ และ Java
Java มี generics และ C ++ ให้รูปแบบการเขียนโปรแกรมที่แข็งแกร่งมากกับtemplates ดังนั้นอะไรคือความแตกต่างระหว่าง C ++ และ Java generics?

10
เหตุใดเขตข้อมูลส่วนตัวจึงเป็นประเภทส่วนตัวไม่ใช่เช่นนั้น
ใน C # (และภาษาอื่น ๆ อีกมากมาย) การเข้าใช้ฟิลด์ส่วนตัวของอินสแตนซ์อื่นประเภทเดียวกันนั้นถูกต้องตามกฎหมาย ตัวอย่างเช่น: public class Foo { private bool aBool; public void DoBar(Foo anotherFoo) { if (anotherFoo.aBool) ... } } เนื่องจากข้อกำหนดC # (ส่วน 3.5.1, 3.5.2) ระบุว่าการเข้าถึงฟิลด์ส่วนตัวอยู่ในประเภทไม่ใช่อินสแตนซ์ ฉันกำลังคุยเรื่องนี้กับเพื่อนร่วมงานและเรากำลังพยายามหาเหตุผลว่าทำไมมันถึงใช้งานได้ (แทนที่จะ จำกัด การเข้าถึงอินสแตนซ์เดียวกัน) อาร์กิวเมนต์ที่ดีที่สุดที่เราสามารถหาได้คือการตรวจสอบความเท่าเทียมกันซึ่งคลาสอาจต้องการเข้าถึงฟิลด์ส่วนตัวเพื่อกำหนดความเท่าเทียมกันกับอินสแตนซ์อื่น มีเหตุผลอื่นอีกไหม? หรือเหตุผลทองบางอย่างที่หมายความว่ามันต้องทำงานอย่างนี้หรือบางสิ่งจะเป็นไปไม่ได้อย่างสมบูรณ์?

10
เครื่องหมายตัวหนอน (~) ในนิยาม enum คืออะไร
ฉันประหลาดใจเสมอที่แม้หลังจากใช้ C # ตลอดเวลานี้ฉันยังคงสามารถหาสิ่งที่ฉันไม่รู้เกี่ยวกับ ... ฉันพยายามค้นหาสิ่งนี้ทางอินเทอร์เน็ต แต่การใช้ "~" ในการค้นหาไม่ได้ผลสำหรับฉันเช่นกันและฉันก็ไม่พบสิ่งใดใน MSDN ด้วย (ไม่ต้องบอกว่ามันไม่มี) ฉันเห็นตัวอย่างโค้ดนี้เมื่อเร็ว ๆ นี้ตัวหนอน (~) หมายถึงอะไร /// <summary> /// Enumerates the ways a customer may purchase goods. /// </summary> [Flags] public enum PurchaseMethod { All = ~0, None = 0, Cash = 1, Check = 2, CreditCard = 4 …

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