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]
加上@
符号表明是动态数组, 可以进行Add
和POP
操作.
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中也是使用缩进进行作用域的区分.
道理我都懂, 可我好像真的对你着迷.