nim lang チュートリアル(readLine,if,case,let,const)

こちらの写経 -> https://nim-lang.org/docs/tut1.html

echo "What's your $name ?"
var name = readline(stdin)
echo "Hi, " , name , " !"

標準入力

readline(stdin) で標準入力を受け付けるもよう
JavaのSystem.inみたいなものかな

コンパイルは下記コマンドで

$ nim c Hello.nim
$ ./Hello

変数宣言はTypescriptっぽい感じ

var 変数名: 型

// 代入の場合
var 変数名: 型  =  値

// まとめて指定もできる
var x , y : int

// 改行で指定もできる
var
  x , y: int
    a,b,c: string

// まとめて代入もできる
var
  x , y: int = 1
    a,b,c: string = "abcdefg"

const と let

constが使える。Javaでいうstatic final な感じかな

const x = "abc"
x = "def"  // <- エラーになる

letも使える。Javaでいfinalな感じかな。

let x = "abc"
x = "def"

上の2つの例をみるとconstとletの違いが無いように思えるが、constはコンパイル時に値が決定している。
letは使用時に1度だけ値を入れることが可能になる

let x = readLine(stdin)     // OK

const x = readLine(stdin)  // NG

このような感じである

if statement

if文では、Pythonと同じようにインデントで制御されるので、インデントがないとちゃんと動かない

let name = readLine(stdin)
if name == "":
  echo "empty value"
elif name == "name":
  echo "name is name"
else:
  echo "Hi , ", name , "!"

こんな感じ

下記はPythonだが、まったく同じ

if a == 1:
    print(1)
elif a == 2:
    print(2)
else:
    print("else")

case statement

case文はレンジ指定とかで使うっぽい

from strutils import parseInt

let n = parseInt(readLine(stdin))
case n
of 0..2, 4..7: echo "The number is in the set: ", n
of 3, 8: echo "The number is 3 or 8 ", n
else: discard

三点リーダの両端を含めた間の値が選択される

一旦ここまで

このエントリーをはてなブックマークに追加

Leave a Reply

Your email address will not be published. Required fields are marked *