當函式沒有形參時,定義和呼叫時都可以省去括號,比如:
func 問好 {
print('吃了麼')
}
問好
感覺這個設計挺合理,但不知這種情況是否會多見。
本週還實現了字典型別的基本功能,與 Python 的基本一致:
電話 = { : }
電話['小明'] = 1357
電話 = {'小明': 1234, '小紅': 4321}
值得一提的是,初始化空字典時 Python 的方式是d = {}
,而木蘭的的空字典是這樣表示:{:}
。
因為{}
在木蘭中是內容為空的“程式碼塊”,比如:
func 空函式 {}
也許這一設計是為了避免語法分析的麻煩,
因此,用{}
代替了 Python 的縮排這一語法改動,就影響了空字典的初始化方法。前者對程式碼視覺效果的影響比後者更大,使用頻度也更多。可見,程式語言的特性和語法設計的取捨值得通盤考慮,因為有可能會牽一髮動全身,何取何舍應該由語言的目標使用者和應用領域等等決定。
於是想到,程式語言設計參考自然語言語法和用詞,不僅能增進程式碼可讀性,各語法元素可能更融洽和有持久生命力,因為自然語言本身經過了千百年的演化和考驗。
下面是幾個主要部分的程式碼行數統計,格式為:上週->本週。
執行測試.py
,檢驗所有木蘭測試程式碼片段:144 -> 145test語法樹.py
,確保生成的語法樹與原始版本一致:63分析器/語法分析器.py
:792 -> 824分析器/語法樹.py
,功用/除錯輔助.py
,包括對 ast 庫的中文封裝:251 -> 260分析器/詞法分析器.py
:184演示高亮.py
:98環境.py
,載入木蘭模組:87中.py
,主程式:35
[admin
]