Nimの基本構文
まず、他の言語にもあるような基本的な構文を紹介していきます。
Hello World
まずは最初の一歩のHelloWorldです。
echo "Hello World!!"
これは、
echo("Hello World!!")
これと同じ意味です。
Nimでは、rubyのように関数呼び出しの場合に括弧を省略することができます。しかし、場合によっては括弧を付ける必要があるのでそこは注意です。
変数、定数、コンパイル時定数
それぞれ、var(変数)、let(定数)、const(コンパイル時定数)になります。
var name = "Hello!!" echo name name = "Rewrite!!" echo name
let name = "Hello!!" echo name
const name = "Hello!!" echo name
値が明示の場合、型推論がされます。しかし、値が無い(Nimの場合はnil
)場合、型宣言が必要です。
var name: string name = "Hello!!"
条件分岐
構文としてはPythonのようなif elif else
です。
真偽値はtrue bool
です。
if true: echo "True!!" else: echo "False!!"
Nimは構造を表現する文法として、Pythonのようなインデント形式を採用しています。基本的にはスペース2つで表現します。
他にも、case of
構文があり、
var name = "hello" case "hello" of "hello": echo 1 of "world": echo 2 else: echo 3
のように書けます。
他にもwhenがありますが、これはコンパイル時分岐です。
繰り返し構文
繰り返し構文は、for while
があります。
for i in 1..5: echo i
var i = 0 while i < 5: echo i i += 1
for whileの両方でbreak continue
が使えます。
..
はいわゆるRangeです。
配列をループする際にも、
var arr = [1, 2, 3, 4, 5] for val in arr: echo val
このように描けます。
indexで回すこともできます。
var arr = [1, 2, 3, 4, 5] for i in 0..arr.len-1: echo arr[i]
しかし、この場合には..<
演算子で、
var arr = [1, 2, 3, 4, 5] for i in 0..<arr.len: echo arr[i]
のように書くこともできます。
関数
関数はNimでは手続きと言われており、構文としてはproc
になります。
proc add5(val: int): int = return val + 5
関数宣言では型の省略はできません。
returnで戻り値を返していますが、他に戻り値を返す方法として、resultに代入するという方法もあります。
proc add5(val: int): int = result = val + 5
まとめ
以上がNimの基本構文になります。しかしNimはその他の機能が豊富なのでそれはまた別の記事に描きたいと思います。