跳到主要内容

Nolang 簡介

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

核心特性

  • 開發者友好:沒有指針、沒有所有權、沒有生命週期...
  • 引用傳遞:所有函數參數均為引用,函數通過修改參數來返回結果
  • 內存自動管理:通過安全作用域模型,離開作用域自動釋放,不會出現懸垂指針、內存洩漏問題
  • 無 GC:沒有內存洩漏問題,故不需要GC
  • 性能優先: 小字符串無堆內存分配;變量可一次分配、一次釋放
  • 方法重載:通過單態化,實現高效性能
  • 接口:支持接口功能聲明、提供默認功能實現、可繼承多接口
  • 泛形:支持類型、數值泛形
  • 匹配:獨特match設計,使用更加簡單

快速開始

// 你好,世界!
// 不需要main入口
print('Hello, Nolang!')

// 變量聲明
i64

// 函數定義(普通方法通過參數返回結果)
add(a i64, b i64, result i64) {
result = a + b
}

// 標準庫方法,可以和普通函數類似,有返回值
c = max(a, b)

// 結構體
user {
name str
age i64
}

u = user {
name: 'Alice',
age: 30,
}

// 方法
user.greet() {
print('Hello, ' + .name)
}

u.greet()