Nolang 簡介
Nolang 是一門實驗性的系統編程語言:內存安全無 GC、語義符合直覺、語法極簡。採用引用傳遞模型與安全作用域模型,實現絕對的內存安全。
核心特性
- 內存安全無 GC:不依賴垃圾回收,自動安全的內存管理;通過安全作用域模型,離開作用域自動釋放,不會出現懸垂指針、內存洩漏。提前批量堆分配,作用域離開時統一批 free。
- 語義符合直覺:尊重開發者意圖;沒有指針、所有權、生命週期等隱式心智負擔。
- 語法極簡:減少關鍵字,語法更簡單。
- 引用傳遞:所有函數參數均為引用,函數通過修改參數來返回結果。
- 性能優先:延遲move;變量可一次分配、一次釋放。
- 方法重載:通過單態化,實現高效性能。
- 接口:支持接口功能聲明、提供默認功能實現、可繼承多接口。
- 泛型:支持類型、數值泛型。
- 匹配:獨特 match 設計,使用更加簡單。
快速開始
; 你好,世界!
; 不需要main入口
print('Hello, Nolang!')
; 變量聲明
i64
; 函數定義
add = (a i64, b i64) (result i64) {
result = a + b
}
; 標準庫方法,可以直接調用
c = math.max(a, b)
; 結構體
user {
name str
age i64
}
u = user {
name: 'Alice'
age: 30
}
; 方法
user.greet = () {
print('Hello, ' - .name)
}
u.greet()
應用案例
- notools — 使用 Nolang 語言實現的 Unix 常用命令行工具集,涵蓋 cat、ls、grep、wc、head、tail 等經典工具,展示了 Nolang 在系統編程領域的實際應用能力。