Nim是一种静态类型编译的系统编程语言, 它结合了其他成熟语言的成功概念, 这次就带你5分钟学会Nim的编写, 来跟我一起尝试一下吧.

Nim官网: https://Nim-lang.org/
Nim中文社区: https://Nim-lang-cn.org/

前言

花了半小时的时间去试了试这门语言, 可以通过Nim生成js或者c的代码以及可执行文件, 感觉蛮酷的, 做个分享.

基础

Nim编译出一个exe文件是这么做的:

Nim c main.Nim

Nim 编译出一个js文件是这么做的:

Nim js main.Nim

发没发现? 只需要更改Nim 中的内容就可以了.

不过, 你无法编译成”世界上最好的语言”, 比如Nim php main.Nim, 会报错的!!

超级详细带代码体验

定义变量

基本变量类型
# 指定类型
var name: string = "HelloWorld"

# 类型推断
var i = 10
列表(数组)
var list = @[1,2,3,4,5]

加上@符号表明是动态数组, 可以进行AddPOP操作.

Table(在Py叫Dict, Go叫Map)
import tables
var dict = {"one": "HeliantHuS"}.toTable

# 取值
echo dict["one"]  # HeliantHuS

注释

# 打印HelloWorld
echo "HelloWorld"

Nim中的注释和Python一样.

判断

case-of
var name: string = readLine(stdin)

# case就等于其他语言的switch, of就相当于case
case name
of "":
    echo "你不可以输入空的哦."

of "HeliantHuS":
    echo "HeliantHuS is Handsome"

else:
    echo "我没看懂你输入的是什么"
if-elif-else
import strformat
var name: string = readLine(stdin)
if name == "HeliantHuS":
    echo fmt"Hello, {name}"
elif name == "exit":
    echo "Exit!!!"
else:
    echo "没有匹配~"

循环

while

while 没什么好说的, Python有的它也有.

while true:
    echo "Hello"
for
for i in countup(1, 10):
    echo i

for i in 1..10:
    echo i

上面两段代码效果一样, 可以看出来比Python还要简洁.

函数

定义一个函数
import strformat
proc hello(name: string): string =
    return fmt"Hello, {name}"
调用函数
var result = hello("HeliantHuS")
echo result
舍弃函数返回值
discard hello("HeliantHuS")

在Nim中, 函数必须要有返回值, 你就必须要去用变量去接收或者直接echo, 不然会报错, 有时候函数的返回值也许不重要, 就需要去舍弃, 就要用关键字discard去舍弃.

作用域

block
block hello:
    echo "HelloWorld"

Nim中也是使用缩进进行作用域的区分.

道理我都懂, 可我好像真的对你着迷.