Nim Ver1.0.0おめでとう

どうも、ぶるーつりーです。

今回はプログラミングネタです。

タイトルの通り、Nimという言語です。

はれてversion1.0がリリースされたということで少し触ってみました。

まず導入方法ですね。以下にまとめてみました。

https://qiita.com/kzak-plusbox/private/e43b6a76c1ca7dc40cb8

環境構築も完了したので言語の基礎(変数、if、for)を触れたので構文を書いときますね。

0.コンソール表示、コメント

# シャープがコメント
#[
複数行コメント
コメントよ
 #[
   入れ子も可能
 ]#
]#
echo "表示よ" & "アンドが文字結合"

まずお詫びを、色変わらずわかりづらくてすいません。ハイライトのやつNim対応してないのです。プラグインかなんか入れれば選択できるのかな?

コンソール表示はecho、shellやbatみたいですね。
コメントは”#”です。#[]#を使えば複数行のコメントも可能、入れ子もできるとか。ただ何に使うのでしょう。

1.変数定義

# 記載方は2通り、上が型指定と下が型推論
var hen1: string = "aaa"  # 型は"string","int"はありました。他にも小数、配列、辞書(マップ)などはあるかとおもいます。
var hen2 = "bbb"
let cons1 = "ccc"  # 再代入不可
cons1 = "change"   # コンパイルエラー
const cons2 = "ddd" # 再代入不可

変数定義はJavascriptに似ていますね。
Javascriptと違うのはletがイミュータブルなことですかね。
ではletとconstは何が違うのか。というと現時点ではよくわからないですが、
オフィシャルサイトには以下のように記載されています。(ドキュメントは全英語です。筆者は英語知識皆無なためGoogle翻訳かましました・・・。)


letは再割り当てできない変数を導入します。constは「コンパイル時の評価を強制してデータセクションに配置する」ことを意味します。

とのこと、よくわからん。
ですが、オフィシャルドキュメントのletでは通る例、constでは通らない例を試したら違いはなんとなくわかる気がすると思います。オフィシャルのドキュメントの例では標準入力の値の設定先がletはOK、constはNGとなると解説されています。

2.if文
 こんな文法です。プログラミングやったことある方はわかりますね。

var data: int = 3
if data > 5:
  echo "data is 5 ijo"  # インデントを1つ以上入れないとコンパイルエラー
    echo "zureta"  # 上とインデントがずれる場合もコンパイルエラー
elif data < 0:
  echo "data is minus"
else:
  echo "data is 0 ijo 5 miman"

インデントのルールが意外に曖昧みたいで、ifの結果の実行式は1つ以上開ける。というのがルールのようです。オフィシャルでは2つ空いてたのでそれがNimの標準のルールでしょうか。
ちなみにある本によるとタブによるインデントは不可と書かれていました。(ver1.0以前のもの)

3.for文

# 配列の中身を1つずつ表示
for str in ["val1", "val2", "val3"]:
  echo str

# 1~9を表示
for num in countup(1, 9)
  echo num

単純なものであれば上記みたいに書くことができます。
while文もありますがここでは触れません。

一旦はここまで。
自分が試した感じではpythonをやったことある方であればすいすいできてしまうような気がしました。
ほかのサイトではpythonやGo言語に似ているといわれているようです。
自分はGo言語を触ったことがないので比較できないですが・・・。

Nimのドキュメントはすべて英語ですが、上記のような基礎的な内容であれば充実してるっぽいので英語見て拒否反応を起こさない吐き気覚えない方であれば習得しやすいのでは。と思いました。
ドキュメントリンク:https://nim-lang.org/docs/tut1.html

ではほんとに簡単ですが今回はここまでで・・・。
今後何か試したりしたらここに追記やブログを新規投稿しますね。

ぶるーつりー

技術は好きだがスキルが低い技術者。
好みはpython、JavaScript。
最近はDockerにも注目してる。

関連記事

  1. GW真っ最中

  2. iOSアプリ「+Read」リリースしました。

  3. 【なんとなくSwift その2】最高のアニメーション実装ライブラリ、Lottie

  4. iOSアプリ「テキトーに通知するアプリ」「MagiCD」配信停止のお知らせ

  5. 【セキュリティは】AWSのMFAを有効化しよう その2【ご安全に】

  6. 文字認識アプリ

  7. Androidアプリ「思い出マップ」をリリースしました。

  8. iOSアプリ「+Read」アップデートのお知らせ

PAGE TOP