コンパイラかく語りき

import { Fun } from 'programming'

君はもうJavaScriptの標準入出力を体験したか!?

僕は先日はじめて体験しました(遅い)

自分ができるようになったのを良いことに、自慢気に書いていこうと思います。JavaScriptの標準入出力について。

 

標準入出力って??

Web系の人にはピンと来ないかもしれませんね。

ターミナル(コマンドライン)上での入力や出力のことです。

C言語を触ったことがある人は「ああ、あれのことね」って感じかもしれません。あるいは、rubyでも書けるみたいです。

 

JavaScriptで??

JavaScriptというか、Node.jsですね。すみません。

公式DL:https://nodejs.org/en/download/

 

 

ポイントはreadlineモジュール

readlineモジュールというものを使うようです。

 

qiita.com

 

ひとまず書いてみました。

gistff1ffbb21b92cf3e4d4e

ユーザーから入力を受け付け、control+cが押されたら入力を終了します。

その後、入力された文字列をバーっとコンソールに出力します。

 

実際にファイルを実行します。

以下のように文字列を入力して、control+cで終了します。

f:id:chuck0523:20151122172510p:plain

 

すると、このように入力された文字をindexつきで吐き出します。

f:id:chuck0523:20151122172646p:plain

 

これが標準入出力ですね。

 

 

気になるreadlineの中身

先ほど定義したreadline変数の中身を覗いてみましょう。

gist78217ec5457d62bcce4a

 

ふむ、色々入っていますね。オブジェクトの形式になっており、input, output, completerの順で定義されています。

 

 

questionを使ってみる

questionを使うと、標準入力の前に「質問」ができます。

 

こちらは、4択問題を出題するのですが、出題と「正解はどれ?」が入力前に表示されます。

gist417ff2075bdc93b9d43c

 

 ttyってなんやねん??

参考にしたサイトにこのような記述があります。

f:id:chuck0523:20151122180217p:plain

 

いやいやいや、ttyってなんやねん!

と、文系プログラマーは思うわけですね。

 

調べました。-> https://ja.wikipedia.org/wiki/Tty

 

まあ、ターミナルと思っておけば良さそう。

 

数値加算するやつつくった

つくりました。

gist9da08acbcdcf60b9e5da

 

ファイルを起動すると、加算処理が始まります。

f:id:chuck0523:20151122183822p:plain

数値を入力してはEnter、入力してはEnter、、、その繰り返し。

もちろん、マイナスの数を指定することで、減算も可能です。

 

終了キーはendになります。

 

個人的に、家計簿をつける際に使えそうです。単純に数値を加算していくだけだと、電卓よりもこっちのほうが早そうです。

 

まとめ

JavaScript(Node.js)でも標準入出力できた。