軟體工程師手冊/語言詞典/BASIC
這是 維基百科條目。
在閱讀此頁面之前,請注意,此處的一些語言特性只適用於某些 BASIC 變體。
BASIC 是一種完整的過程式語言,或者根據您使用的 BASIC,是一種面向物件的語言。BASIC 是 Beginner's All-purpose Symbolic Instruction Code 的縮寫
現代 BASIC 通常整合到視覺化的、事件驅動的環境中;在這些應用程式中,從開發者的角度來看,沒有程式入口點。在命令列 REALbasic 程式的情況下,有一個 ConsoleApplication 類別的 Run 事件在程式開始時被呼叫,並且接收命令列引數作為字串陣列。
BASIC 語法使用很少的特殊標點符號,除了代數和大多數其他語言中常見的標點符號,如“+”用於加法。等號(“=”)用於賦值和相等性測試,這不會產生歧義,因為(與 C 不同)賦值語句不能用作另一個表示式的部分。圓括號用於對術語進行分組,就像在代數中一樣,以及用於索引陣列。句點(或點)用於訪問物件屬性或方法。方括號、花括號和其他奇特的標點符號不會使用。
程式碼塊由語句分隔;例如,一個“if”塊以一個“if”語句開始,並以“end if”結束。語句由換行符分隔,雖然需要跨多行的一條語句可以透過特殊的行延續字元(“_”,空格後跟下劃線)來跨多行,並且可以透過使用冒號(“:”)字元將多個語句保留在一行中,儘管這通常不被認為是良好的程式設計實踐。
這是一個典型的 BASIC 程式碼示例
Dim i As Integer Dim s As String for i = 1 to 4 s = s + "spam, " next MsgBox s + "baked beans, and spam!"
VisualBasic 和 REALbasic 都使用單引號來表示註釋,該註釋一直持續到行尾。舊的 REM 語句也可以使用,儘管它不再流行。REALbasic 也可能使用 C++ 風格的“//”註釋。BASIC 不支援任何塊註釋機制,儘管 IDE 可能支援快速註釋或取消註釋程式碼塊。示例
meaning = 6*7 ' This is a comment REM So's this, but nobody writes comments this way anymore. // This comment will work only in REALbasic. ‘‘‘ In VB.NET, three apostrophes mean an XML comment.
REALbasic 是一種強型別語言;Visual Basic 是一種型別更寬鬆的語言,一個無型別變數會自動被型別化為 Variant 型別(VB 6 及更低版本)或 Object 型別(VB .NET),它們都意味著變數可以根據變數的內容切換型別,模擬一個無型別變數。在 VB.NET 中,可以選擇強制宣告型別。區域性變數使用 Dim 語句宣告
Dim i As Integer
變數可以在宣告時被賦予初始值。雖然不適用於 VB6。
Dim transplant As String = "liver"
可以在一行中宣告多個變數,並且可以在宣告時賦予它們初始值,如下所示
Dim x As Integer, xstr As String
請注意,REALbasic 和 VisualBasic 之間存在一個重要區別,即當兩個變數僅使用一個型別宣告時
Dim a, b As Double
在 REALbasic 和 VB.NET 中,a 和 b 都是 Double 型別的變數。在 VB 6 中,b 是一個 Double,但 a 是一個 Variant(本質上,一個無型別變數)。
請注意,在物件宣告的情況下,還有一個更簡便的方法可以將變數初始化為一個新的物件例項
Dim d1 as New Date ' this... Dim d2 as Date = New Date ' does the same as this, except this is not allowed in VB6
變數也可以宣告為類、視窗或模組的屬性。它們使用相同的語法,或者直接由 IDE 編輯。
方法由 Function 或 Sub 關鍵字定義。以下是一個示例。
Function Factorial( num As Integer ) As Integer
Dim out As Integer = 1
Dim i As Integer
For i = 2 to Num
out = out * i
Next i
Return out
End Function
REALbasic 在方法內使用塊範圍;也就是說,在(例如)If 塊內的一個 Dim 語句建立一個在該塊結束時超出範圍的變數。在方法頂部宣告的區域性變數在方法結束時超出範圍。在方法內宣告的所有變數在該方法之外都不可訪問,除了靜態變數之外,它們使用堆疊儲存。
類、模組和視窗的屬性儲存在堆上。模組屬性可以是私有的(只能在模組內訪問)、公有的(可以在任何地方使用模組名稱作為字首訪問)或全域性的(可以在任何地方使用沒有字首訪問)。類屬性可以是私有的(只能在該類內訪問)、受保護的(可以在該類或其子類內訪問)或公有的(可以在任何地方透過物件引用訪問)。視窗實際上只是類,並且具有相同的範圍規則。
BASIC 支援 If/ElseIf/Else 塊
If fullness < 10 Then result = "Bring me more food!" ElseIf fullness = 10 Then result = "I couldn't eat another bite." Else Explode End If
還有一種單行格式,用於快速測試
If not haveShrubbery Then Say "Ni"
對於較大的測試塊,可以使用 Select Case
Select Case healthStage Case 0 x = "I'm not quite dead yet" Case 1 x = "I'm feeling better" Case 2 x = "Think I'll go for a walk now" Else x = "I feel happy..." End Select
BASIC 支援多種迴圈結構,包括 For/Next、Do/Loop 和 While/Wend。For 語句可以使用數值計數器,或者可以使用 For Each 迭代陣列的元素。
For i = 1 To 100 i = i + 1 Next i
For Each knight in Knights results.Append knight.Name + " says Ni!" Next
大多數 BASIC 應用程式都是視覺化的(GUI)應用程式,並且沒有標準輸出。但是,如果只需要顯示一條簡短的訊息,可以使用 MsgBox 語句
MsgBox "Hello world!"
出於除錯目的,在 REALbasic 中,您也可以使用 System.DebugLog,它會將它的引數傳送到您所在的平臺的標準除錯控制檯。在 VB6 中,您可以使用 Debug.Print 在立即視窗中列印語句。在 VB.NET 中,您可以使用 Debug 物件進行各種除錯選項。
BASIC 包含對陣列的支援,陣列可以作為引數傳遞、從函式返回、賦值給變數等。還存在一個 Collection 類,以及在 REALbasic 中,一個 Dictionary 類,它儲存任意鍵值對。
在沒有合適的內建容器的情況下,可以使用最合適的內部儲存輕鬆地定義一個自定義容器類。
大多數原始資料型別(例如數字和字串)的陣列可以排序(在 VB.NET 和 REALbasic 中)或洗牌(REALbasic),例如:
Function Choose5( cards() as String ) as String()
' shuffle the given cards, choose 5 at random,
' and return them in sorted order
cards.Shuffle
Dim out() as String
For i As Integer = 1 to 5
out.Append cards(i)
Next
out.Sort
return out
End Function
Dictionary 類(在 REALbasic 中)提供了可調整大小的雜湊表的內建實現。當然,使用者可以根據需要編寫其他演算法。
BASIC 使用引用計數而不是垃圾回收。當沒有更多對某個物件或字串的引用時,它的記憶體會自動(並且立即)釋放。
Visual Basic 專案由多種檔案組成,其中大多數是純文字檔案。REALbasic 專案通常儲存在單個專有二進位制格式的檔案中,不過也可以將專案項儲存在外部,以二進位制或 XML 格式。
不要將 Visual Basic 與 REALbasic 和經典 BASIC(主要由 Microsoft QuickBasic 和 QBASIC 代表)混淆。它們有共同的根源和類似的語法,但語義卻截然不同。REALbasic 的語義更接近於 Java 或 VB.NET,而不是 Visual Basic,後者比面向物件更面向過程。
REALbasic 主頁 REALbasic 車庫 VB 參考資料
在軟體開發概念中,列印非常重要,尤其是針對商業目的的軟體開發。
列印有兩種型別:
1) Windows 列印 2) Dos 列印
REALbasic 開發人員應該考慮 REALbasic 開發者 雜誌。
可以透過 Amazon.com 找到關於 REALbasic 和 Visual Basic 的大量書籍。