DIM หมายถึงอะไรใน Visual Basic และ BASIC


คำตอบ:


318

ติ่มเดิม (เป็นภาษา BASIC) หมายถึง Dimension เนื่องจากใช้เพื่อกำหนดขนาดของอาเรย์

(การใช้งานพื้นฐานของ BASIC ดั้งเดิมคือ Dartmouth BASIC ซึ่งสืบเชื้อสายมาจาก FORTRAN ซึ่งมีการสะกด DIMENSION ออกมา)

ทุกวันนี้ Dim ใช้เพื่อกำหนดตัวแปรใด ๆ ไม่ใช่แค่อาร์เรย์ดังนั้นความหมายของมันจึงไม่ง่ายอีกต่อไป


64
พื้นหลังเล็กน้อยอาจช่วยได้ ในการเผยแพร่เบื้องต้นของตัวแปรพื้นฐานเท่านั้นที่จำเป็นต้องประกาศคืออาร์เรย์ คีย์เวิร์ด "Dim" ถูกใช้เพื่อตั้งค่ามิติของอาร์เรย์นี้
Chris Simpson

26
ฉันจำได้ว่าอ่านคู่มือการตั้งโปรแกรม gw-basic ในช่วงต้นยุค 80 และฉันจำได้อย่างชัดเจนว่ามันอธิบายความหมายของ DIM ว่า Declare In Memory การอ่านคู่มือพื้นฐานของดาร์ ธ เมาท์จาก '64 มีคำสั่ง LET และ READ ที่กำหนดตัวแปรและค่าของมันและในภายหลังใน '68 DIM จะรวมอยู่และในความเป็นจริงจะใช้สำหรับอาร์เรย์ bitsavers.org/pdf/dartmouth/BASIC_4th_Edition_Jan68.pdf
RandyMorris

4
สิ่งหนึ่งที่ต้องจำไว้คือในการพัฒนาภาษายุคแรก ๆ มันเป็นเรื่องธรรมดาที่จะใช้คำหลักมากเกินไปเพื่อให้มีความหมายหลายอย่าง เนื่องจากในพื้นฐานดั้งเดิม "Dim" เป็นคำหลักที่ใช้ในการประกาศตัวแปรอาเรย์แล้วคำหลักจึงถูกขยายเพื่อรวมการประกาศตัวแปรทั้งหมด หลีกเลี่ยงการแนะนำคำหลักใหม่ด้วยเหตุผลหลายประการซึ่งหนึ่งในนั้นคือพวกเขาไม่ต้องการทำลายโปรแกรมที่มีอยู่ซึ่งใช้คำหลักใหม่เป็นชื่อตัวแปรอยู่แล้ว วันนี้เรามีเทคโนโลยีการแยกวิเคราะห์ที่ซับซ้อนมากขึ้นและคอมพิวเตอร์ที่เร็วขึ้นเราไม่เห็นข้อ จำกัด ประเภทนั้น
zumalifeguard

3
ตัวอย่างเช่นในภายหลังขั้นพื้นฐานเช่น Visual Basic ชนิดและตัวแปรอาจเป็นชื่อเดียวกัน ตัวอย่างที่ดีของคำหลักที่มากเกินไปคือ "คงที่" ใน C ++ มันหมายถึงสิ่งต่าง ๆ ในบริบทที่แตกต่างกัน
zumalifeguard

สำหรับผู้ที่ดูคู่มือ BASIC ที่ยอดเยี่ยม @RandyMorris ที่เชื่อมโยงกับการอ้างอิงแรกไปยัง DIM อยู่ในหน้าหมายเลข 21 หรือเป็นหน้า 26 ใน PDF เอง คำจำกัดความที่เป็นทางการมากขึ้นจะอยู่ที่หน้าหมายเลข 37 หรือ 41 ในรูปแบบ PDF
John Cummings

120

Dim มีความหมายต่างกัน

ฉันได้พบการอ้างอิงเกี่ยวกับDimความหมาย"ประกาศในหน่วยความจำ"การอ้างอิงที่เกี่ยวข้องมากขึ้นคือเอกสารในคำแถลง Dim ที่เผยแพร่ Oracle เป็นส่วนหนึ่งของ Siebel VB Language Reference แน่นอนคุณอาจโต้แย้งว่าถ้าคุณไม่ประกาศตัวแปรในหน่วยความจำคุณจะทำอย่างไร บางที"ประกาศในโมดูล"อาจเป็นทางเลือกที่ดีเมื่อพิจารณาว่าDimมีการใช้งานอย่างไร

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

ในความเป็นจริงที่ต้นกำเนิดของ Basic Dimใช้เพื่อประกาศอาร์เรย์เท่านั้น สำหรับตัวแปรปกติไม่มีการใช้คำหลักแทนประเภทของพวกเขาถูกอนุมานจากชื่อของพวกเขา ตัวอย่างเช่นหากชื่อของตัวแปรลงท้ายด้วย$มันเป็นสตริง (นี่คือสิ่งที่คุณสามารถเห็นได้แม้ในชื่อวิธีถึง VB6 เป็นต้นMid$) และดังนั้นคุณใช้Dimเพื่อกำหนดมิติให้กับอาร์เรย์เท่านั้น (โปรดสังเกตว่าการReDimปรับขนาดอาร์เรย์)


จริง ๆ แล้วมันมีความสำคัญไหม? ฉันหมายถึงมันเป็นคำหลักที่มีความหมายในภาษาเทียม ไม่จำเป็นต้องเป็นคำในภาษาอังกฤษหรือภาษาธรรมชาติอื่น ๆ ดังนั้นมันอาจหมายถึงสิ่งที่คุณต้องการทุกสิ่งที่สำคัญคือมันใช้งานได้

อย่างไรก็ตามนั่นไม่เป็นความจริงอย่างสมบูรณ์ เนื่องจาก BASIC เป็นส่วนหนึ่งของวัฒนธรรมของเราและการทำความเข้าใจว่าทำไมจึงเป็นเช่นนี้ - ฉันหวังว่า - จะช่วยปรับปรุงวิสัยทัศน์โลกของเรา


ฉันนั่งจากคอมพิวเตอร์ของฉันด้วยความปรารถนาที่จะช่วยรักษาวัฒนธรรมชิ้นเล็ก ๆ ของเราที่ดูเหมือนว่าจะหายไปแทนที่ด้วยการคาดเดาว่ามันคืออะไร ดังนั้นฉันจึงได้ขุด MSDN ทั้งปัจจุบันและซีดีเก่าจากเวอร์ชั่น 1998 ฉันยังมีการสืบค้น documention สำหรับเก่า QBasic [มีการใช้ DOSBox] และมีการจัดการที่จะได้รับบางคู่มือ Darthmouth Dimทั้งหมดที่จะหาวิธีที่พวกเขาพูดคุยเกี่ยวกับ สำหรับความผิดหวังของฉันพวกเขาไม่ได้พูดในสิ่งที่Dimยืนหยัดและบอกว่ามันใช้อย่างไร

แต่ก่อนที่ความหวังของฉันจะสลัวฉันสามารถหาคู่มือใช้ระบบไมโครคอมพิวเตอร์ของ BBCนี้(ที่อ้างว่ามาจากปี 1984 และฉันไม่ต้องการที่จะสงสัย) BBC Microcomputer ใช้ตัวแปรพื้นฐานที่เรียกว่า BBC BASIC และอธิบายไว้ในเอกสาร แม้ว่าจะไม่ได้พูดว่าอะไรจะเกิดDimขึ้น แต่ก็พูดว่า (หน้า 104):

... คุณสามารถกำหนดขนาด N $ เพื่อให้มีรายการได้มากเท่าที่คุณต้องการ ตัวอย่างเช่น DIM N $ (1,000) จะสร้างอาร์เรย์สตริงที่มีช่องว่างสำหรับ 1,000 ชื่อที่แตกต่างกัน

อย่างที่ฉันพูดมันไม่ได้บอกว่ามันDimหมายถึงมิติ แต่เป็นข้อพิสูจน์ที่แสดงให้เห็นว่าการเชื่อมโยงDimกับDimensionเป็นเรื่องธรรมดาในเวลาที่เขียนเอกสารนั้น

ตอนนี้ฉันได้รับความประหลาดใจที่คุ้มค่าในภายหลังที่ (หน้า 208) ชื่อของส่วนที่อธิบายคำหลัก DIM (หมายเหตุ: ที่ไม่ได้อยู่ในเนื้อหา) กล่าวว่า:

มิติ DIM ของอาร์เรย์

ดังนั้นฉันไม่ได้รับการอ้างว่า "ติ่มซำสำหรับ ... " แต่ฉันคิดว่ามันเป็นที่ชัดเจนว่ามนุษย์ที่ดีใด ๆ ที่สามารถอ่านเอกสารเหล่านั้นจะพิจารณาว่าDimหมายถึงมิติ


ด้วยความหวังที่ต่ออายุใหม่ฉันตัดสินใจค้นหาวิธีDimเลือก อีกครั้งฉันไม่พบบัญชีในหัวเรื่อง แต่ฉันก็ยังสามารถหาคำพูดที่ชัดเจนได้:

ก่อนที่คุณจะสามารถใช้อาร์เรย์ได้คุณต้องกำหนดในคำสั่ง DIM (ส่วนข้อมูล)

คุณสามารถพบสิ่งนี้เป็นส่วนหนึ่งของคู่มือผู้ใช้ True BASIC Online ได้ที่หน้าเว็บของ True BASIC inc บริษัท ที่ก่อตั้งโดยThomas Eugene Kurtzผู้ร่วมเขียน BASIC


ดังนั้นในการ reallity Dimเป็นชวเลขDIMENSIONและใช่ ที่มีอยู่ใน FORTRAN ก่อนดังนั้นจึงเป็นไปได้ว่ามันจะถูกเลือกโดยอิทธิพลของ FORTRAN เป็นแพทริคแมคโดนักล่าวในคำตอบของเขา


Dim sum as string = "this is not a chinese meal" REM example usage in VB.NET ;)

1
ฉันเคยได้ยิน "ประกาศในความทรงจำ" ด้วย
jocull

"จริง ๆ แล้วมันมีความสำคัญไหม?" เรื่องตลกที่ด้อยค่า อีกทั้งตอนนี้ฉันขอยืนยันกับผู้คนว่านี่คือสิ่งที่Dimเกิดขึ้นจริง
Jacob Stamm

30

มันสั้นสำหรับ Dimension เนื่องจากเดิมใช้ใน BASIC เพื่อระบุขนาดของอาร์เรย์

DIM - (ย่อมาจากมิติ) กำหนดขนาดของอาร์เรย์

Ref: http://en.wikipedia.org/wiki/Dartmouth_BASIC

ส่วนหนึ่งของซอร์สโค้ดคอมไพเลอร์ BASIC ดั้งเดิมซึ่งมันจะกระโดดเมื่อค้นหาDIMคำสั่งซึ่งคุณสามารถเห็นเจตนาดั้งเดิมของคำสำคัญ:

DIM    LDA XR01             BACK OFF OBJECT POINTER
       SUB N3
       STA RX01
       LDA L        2       GET VARIABLE TO BE DIMENSIONED
       STA 3
       LDA S        3
       CAB N36              CHECK FOR $ ARRAY
       BRU *+7              NOT $
       ...

Ref: http://dtss.dartmouth.edu/scans/BASIC/BASIC%20Compiler.pdf

หลังจากนั้นมันจะถูกนำมาใช้เพื่อประกาศตัวแปรทุกชนิดเมื่อมีความเป็นไปได้ที่จะระบุประเภทของตัวแปรในการใช้งานล่าสุด


15

มิติของตัวแปรโดยทั่วไปคุณกำลังบอกคอมไพเลอร์ว่าคุณต้องการตัวแปรชนิดนี้ในบางจุด



10

ประกาศตัวแปร เริ่มแรกมันสั้นสำหรับ "ส่วนข้อมูล" ซึ่งไม่ใช่คำที่ใช้ในการเขียนโปรแกรม (นอกเหนือจากคำหลักที่เฉพาะเจาะจงนี้) ในระดับที่สำคัญใด ๆ

http://in.answers.yahoo.com/question/index?qid=20090310095555AANmiAZ


7

DIM ย่อมาจาก Declaration In Memory DIM x เนื่องจาก New Integer สร้างพื้นที่ในหน่วยความจำที่เก็บตัวแปร x ไว้


6

ย้อนกลับไปในวันที่หน่วยความจำ DIM ที่จองไว้สำหรับอาร์เรย์และเมื่อหน่วยความจำถูก จำกัด คุณต้องระวังวิธีที่คุณใช้ ฉันเคยเขียน (ในปี 1981) โปรแกรมพื้นฐานบน TRS-80 Model III พร้อม 48Kb RAM มันจะไม่ทำงานบนเครื่องที่คล้ายกันกับ RAM ขนาด 16Kb จนกว่าฉันจะลดขนาดอาร์เรย์โดยการเปลี่ยนคำสั่ง DIM


4

ย่อขนาด มันเป็นตัวแปรชนิดหนึ่ง คุณประกาศ (หรือ "บอก" Visual Basic) ว่าคุณกำลังตั้งค่าตัวแปรด้วยคำนี้


3

คำหลัก Dim เป็นทางเลือกเมื่อเราใช้กับ modifiers- สาธารณะ, ป้องกัน, เพื่อน, เพื่อนที่ได้รับการปกป้อง, ส่วนตัว, แชร์, เงา, คงที่, อ่านได้อย่างเดียวและอื่น ๆ - Static nTotal As Integer

สำหรับประเภทอ้างอิงเราต้องใช้คำหลักใหม่เพื่อสร้างตัวอย่างใหม่ของชั้นเรียนหรือโครงสร้าง Dim lblTop As New System.Windows.Forms.Labelเช่น

คำสั่งติ่มสามารถใช้กับประเภทข้อมูลออกเมื่อคุณตั้งค่า ตัวเลือกอนุมานไปที่ On ในกรณีนั้นคอมไพเลอร์จะแทรกประเภทข้อมูลของตัวแปรจากชนิดของนิพจน์การเริ่มต้น ตัวอย่าง:

Option Infer On

Module SampleMod

Sub Main()

 Dim nExpVar = 5

ข้อความข้างต้นเทียบเท่ากับ - Dim nExpVar As Integer


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