【笔记】Nim学习笔记

前言

Nim是一个指令式、通用、多范式、静态类型、编译型的编程语言,由Andreas Rumpf设计和开发,设计目标是高效、富有表现力以及优雅。(维基百科

编译器

下载依赖

1
brew install nim

包管理

下载依赖

1
nimble install <package_name>

运行源码

1
nim r <file>.nim

编译并运行源码

1
nim c -r <file>.nim
1
nim compile --run <file>.nim

编译并生成可执行文件

  • Nim文件名不能出现-,否则会编译失败
1
nim compile <file>.nim

-d:release:编译为发布版
--cincludes:将当前目录的所有头文件包含到编译文件中
--cpu:arm64:指定架构
i386m68kalphapowerpcpowerpc64powerpc64elsparcvmhppaia64amd64mipsmipselarmarm64jsnimvmavrmsp430sparc64mips64mips64elriscv64espwasm32
-d:mingw:指定编译器

1
nim c <file>.nim
1
nim cpp <file>.nim
1
nim objc <file>.nim

编译为Windows可执行程序

32位
1
nim c -d:mingw --app:gui --cpu:i386 -d:danger -d:strip --opt:size --passc=-flto --passl=-flto <file>.nim
64位
1
nim c -d:mingw --app:gui --cpu:amd64 -d:danger -d:strip --opt:size --passc=-flto --passl=-flto <file>.nim

转译源码

转译为JS代码

--run:转译并运行

1
nim js <file>.nim

注释

1
# 单行注释

输出语句

1
echo "输出内容"
1
echo "输出内容1", "输出内容2"

输入语句

1
var 变量名 = readLine(stdin)

变量

声明变量

1
var 变量名: 数据类型

定义变量

1
var 变量名: 数据类型 = 值
  • 自动类型推导
1
var 变量名 = 值
  • 定义多个变量
1
2
3
var
变量1 = 值
变量2: 数据类型 = 值

变量赋值

1
变量名 = 值

常量

定义常量

const

  • 无法将常量与变量计算得到const定义的常量
  • 无法将变量赋值为const定义的常量
1
const 变量名: 数据类型 = 值
  • 定义多个常量
1
2
3
const
变量1 = 值
变量2: 数据类型 = 值

let

  • 可以将常量与变量计算得到let定义的常量
  • 可以将变量赋值为let定义的常量
1
let 变量名: 数据类型 = 值
  • 定义多个常量
1
2
3
let
变量1 = 值
变量2: 数据类型 = 值

完成

参考文献

哔哩哔哩——鱼C-小甲鱼
哔哩哔哩——前端亮亮