【笔记】Nim学习笔记

前言

Nim学习笔记

下载依赖

1
brew install 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

编译并运行

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

运行

1
nim r <file>.nim

转译为JS代码

1
nim js <file>.nim

转译并运行

1
nim js --run <file>.nim

下载依赖

1
nimble install <package_name>

注释

1
# 单行注释

声明变量

1
var 变量名: 数据类型

定义变量

定义变量时自动识别数据类型

1
var 变量名 = 值

定义变量时指定数据类型

1
var 变量名: 数据类型 = 值

定义多个变量

1
2
3
var
变量1 = 值
变量2: 数据类型 = 值

定义常量

const定义的常量

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

定义多个常量

1
2
3
const
变量1 = 值
变量2: 数据类型 = 值

let定义的常量

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

定义多个常量

1
2
3
let
变量1 = 值
变量2: 数据类型 = 值

修改变量的值

1
变量名 = 值

输出语句

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

输入语句

1
var 变量名 = readLine(stdin)

过程

  • 过程内无法访问过程外的全局变量

声明过程

1
proc 过程名(参数列表): 返回值类型

定义过程

省略关键字

1
proc 过程名(参数列表): 返回值类型 = 返回值
1
2
3
proc 过程名(参数列表): 返回值类型 =
...
返回值

用return关键字定义返回值

1
proc 过程名(参数列表): 返回值类型 = return 返回值
1
2
3
proc 过程名(参数列表): 返回值类型 =
...
return 返回值

为缺省的接收返回值的变量赋值

1
proc 过程名(参数列表): 返回值类型 = result = 返回值
1
2
3
proc 过程名(参数列表): 返回值类型 =
...
result = 返回值

执行过程

1
var 变量名 = 过程名(参数列表)

完成

参考文献

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