跳到主要内容

Nolang 簡介

Nolang 是一門實驗性的系統編程語言,採用引用傳遞模型、安全作用域模型,實現了內存絕對安全。無GC。

核心特性

  • 開發者友好:沒有指針、沒有所有權、沒有生命週期...
  • 引用傳遞:所有函數參數均為引用,函數通過修改參數來返回結果
  • 內存自動管理:通過安全作用域模型,離開作用域自動釋放,不會出現懸垂指針、內存洩漏問題
  • 無 GC:沒有內存洩漏問題,故不需要GC
  • 性能優先: 延迟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()