คำถามติดแท็ก static-typing

16
ความแตกต่างระหว่างภาษาที่พิมพ์แบบคงที่และภาษาที่พิมพ์แบบไดนามิกคืออะไร?
ฉันได้ยินมาว่าภาษาการเขียนโปรแกรมใหม่นั้นถูกพิมพ์แบบไดนามิก แต่จริงๆแล้วมันหมายความว่าอย่างไรเมื่อเราพูดว่าภาษานั้นถูกพิมพ์แบบไดนามิกและแบบคงที่?

30
ส่วนต่อประสานกับคลาสฐาน
ฉันควรใช้อินเทอร์เฟซเมื่อใดและควรใช้คลาสพื้นฐานเมื่อใด ควรเป็นอินเทอร์เฟซเสมอหรือไม่หากฉันไม่ต้องการกำหนดวิธีการใช้งานพื้นฐาน ถ้าฉันมีคลาส Dog และ Cat เหตุใดฉันจึงต้องการใช้งาน IPet แทน PetBase ฉันสามารถเข้าใจว่ามีอินเตอร์เฟสสำหรับ ISheds หรือ IBarks (IMakesNoise?) เพราะสามารถวางสัตว์เลี้ยงบนพื้นฐานของสัตว์เลี้ยงได้ แต่ฉันไม่เข้าใจว่าจะใช้สัตว์เลี้ยงทั่วไปชนิดใด


9
คงที่ / ไดนามิก vs แข็งแกร่ง / อ่อนแอ
ฉันเห็นคำเหล่านี้รวมตัวกันรอบ ๆ สถานที่ในการเขียนโปรแกรมและฉันมีความคิดที่คลุมเครือของสิ่งที่พวกเขาหมายถึง การค้นหาแสดงให้ฉันเห็นว่ามีการขอให้สิ่งต่าง ๆ ดังกล่าวหมดไปในความเป็นจริง เท่าที่ฉันทราบการพิมพ์แบบสแตติก / ไดนามิกในภาษานั้นแตกต่างอย่างมากจากการพิมพ์แบบ Strong / Weak แต่สิ่งที่แตกต่างนั้นทำให้ฉันหลง แหล่งที่มาที่แตกต่างกันดูเหมือนจะใช้ความหมายที่แตกต่างกันหรือแม้กระทั่งใช้คำที่สลับกันได้ ฉันไม่สามารถหาที่ไหนสักแห่งที่พูดถึงทั้งคู่และสะกดความแตกต่าง จะมีอะไรดีถ้ามีคนโปรดสะกดคำนี้ออกมาให้ชัดเจนสำหรับฉันและคนอื่น ๆ ในโลก

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

5
Java Casting แนะนำค่าใช้จ่ายหรือไม่? ทำไม?
มีค่าใช้จ่ายหรือไม่เมื่อเราโยนวัตถุประเภทหนึ่งไปยังอีกประเภทหนึ่ง? หรือคอมไพเลอร์เพียงแก้ไขทุกอย่างและไม่มีค่าใช้จ่ายในขณะทำงาน? นี่เป็นเรื่องทั่วไปหรือมีหลายกรณี? ตัวอย่างเช่นสมมติว่าเรามีอาร์เรย์ของ Object [] โดยที่แต่ละองค์ประกอบอาจมีประเภทที่แตกต่างกัน แต่เรารู้แน่นอนอยู่แล้วว่าองค์ประกอบ 0 เป็นสองเท่าองค์ประกอบ 1 คือสตริง (ฉันรู้ว่านี่เป็นการออกแบบที่ผิด แต่สมมติว่าฉันต้องทำสิ่งนี้) ข้อมูลประเภทของ Java ยังคงถูกเก็บไว้ตลอดเวลาหรือไม่ หรือทุกอย่างถูกลืมไปหลังจากการคอมไพล์แล้วและถ้าเราทำ (Double) องค์ประกอบ [0] เราก็จะทำตามตัวชี้และแปลความหมายของ 8 ไบต์นั้นเป็นสองเท่าคืออะไร? ฉันไม่ชัดเจนมากเกี่ยวกับวิธีการสร้างประเภทใน Java หากคุณมีคำแนะนำใหม่เกี่ยวกับหนังสือหรือบทความก็ขอบคุณเช่นกัน

7
TypeScript: ปัญหาเกี่ยวกับระบบประเภท
ฉันเพิ่งทดสอบ typescript ใน VisualStudio 2012 และมีปัญหากับระบบประเภท ไซต์ html ของฉันมีแท็ก canvas ที่มี id "mycanvas" ฉันกำลังพยายามวาดรูปสี่เหลี่ยมผืนผ้าบนผืนผ้าใบนี้ นี่คือรหัส var canvas = document.getElementById("mycanvas"); var ctx: CanvasRenderingContext2D = canvas.getContext("2d"); ctx.fillStyle = "#00FF00"; ctx.fillRect(0, 0, 100, 100); น่าเสียดายที่ VisualStudio บ่นว่า คุณสมบัติ 'getContext' ไม่มีอยู่ในค่าของชนิด 'HTMLElement' มันทำเครื่องหมายบรรทัดที่สองว่าเป็นข้อผิดพลาด ฉันคิดว่านี่เป็นเพียงคำเตือน แต่โค้ดไม่ได้รวบรวม VisualStudio บอกอย่างนั้น มีข้อผิดพลาดในการสร้าง คุณต้องการดำเนินการต่อและเรียกใช้งานสร้างที่ประสบความสำเร็จล่าสุดหรือไม่ ฉันไม่ชอบข้อผิดพลาดนี้เลย เหตุใดจึงไม่มีการเรียกใช้เมธอดแบบไดนามิก หลังจากเมธอด getContext มีอยู่อย่างแน่นอนในองค์ประกอบ …

2
การประกาศประเภทที่ต้องการใน Julia
มีวิธีการอย่างชัดเจนต้องในจูเลีย (เช่นบอกว่าภายในโมดูลหรือแพคเกจ) ที่ใด ๆประเภท จะต้อง ได้รับการประกาศ ? เช่นPackageCompilerหรือLint.jlมีการสนับสนุนสำหรับการตรวจสอบดังกล่าว การกระจายมาตรฐานของ Julia นั้นกว้างกว่านั้นมีตัววิเคราะห์โค้ดแบบคงที่หรือเทียบเท่าที่สามารถช่วยตรวจสอบข้อกำหนดนี้ได้หรือไม่? เป็นตัวอย่างที่สร้างแรงบันดาลใจสมมติว่าเราต้องการตรวจสอบให้แน่ใจว่าฐานรหัสการผลิตที่เพิ่มขึ้นของเรายอมรับเฉพาะรหัสที่พิมพ์อยู่เสมอภายใต้สมมติฐานที่ว่ารหัสฐานขนาดใหญ่ที่มีการประกาศประเภทมักจะบำรุงรักษาได้มากกว่า หากเราต้องการบังคับใช้เงื่อนไขนั้น Julia ในการกระจายมาตรฐานได้จัดเตรียมกลไกใด ๆ เพื่อให้มีการประกาศประเภทหรือช่วยให้บรรลุเป้าหมายนั้นหรือไม่? (เช่นมีสิ่งใดบ้างที่สามารถตรวจสอบได้ผ่านทาง linters, กระทำ hooks หรือเทียบเท่า?)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.