nim-lang是以转译为其他编程语言为目的的编程语言。
关注nim-lang是因为它既可以转译成C/C++代码,又可以转义成JavaScript代码,灵活多变。且在内存管理方面,可以使用垃圾收集,也可以使用基于引用的方式,用途广泛。
另外,Nim还自包含,不需要额外的依赖。还具有强大的macro系统。措辞风格方面,采用了和python类似的缩进编排。
Features
- “It combines successful concepts from Ada and Modula.” 尚不知道啥意思。
- 对JavaScript后端提供一流的支持
- 支持元编程相关的generics, templates, macros等
- 料包管理器叫做Nimble,使用
package.json
来映射料包的名字和URL- 料包采用
.nimble
定义
- 料包采用
- 可以很方便封用C/C++/Obj-C的料库
- 程序崩溃的时候会抛出异常,从Python学的
Frequently Asked Questions
- 被nim学习的语言:Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon
- 使用proc命名执行诀,func用于定义函数(即没有副作用的执行诀)
- 如何产出执行最快的文件
-d:danger
关掉所有检查-d:release
供一般使用- 可以使用
--passc:-flto
或-d:lto
打开编译时优化
- 如何产出做小的可执行文件
-d:danger -d:strip --opt:size
,外加编译时优化
- 如何使用其他C编译器
- 编辑
config/nim.cfg
- 编辑
Learn Nim in 5 minutes
#
开启单行注释#[
和#
开启多行注释,可嵌套- 或者使用discard
How I Start
对于文件main.nim,内容如下:
echo "Hello, world!"
其编译只需要执行nim c main.nim
即可生成可执行文件main.exe
。
执行nim r main.nim
则生成后会直接执行之,或者nim c -r main.nim
。
执行nimble init
则可生成一个工程,使用nimble build
来建构,nimble install
来安装。
nimble默认生成的是release build
Nim basics
VSCode的Code Runner扩展可以通过Alt+Ctrl+N
编译执行当前代码。
Nim Tutorial (Part I)
文档