Nim帳

プログラミング言語Nimについて書いていきます。

20160921155215

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はその他の機能が豊富なのでそれはまた別の記事に描きたいと思います。