この記事は、Jig.jpインターン Advent Calendar 2020 20日目の記事です。
こんにちは!jig.jpインターン参加者のすずともです。
本当はjig.jpインターンの内容をいろいろ書いていきたかったのですが、あまり時間が無くて...
というわけで、最近何かと話題のプログラミング湯婆婆を
インターンで教わったDenoを使って実装していきたいと思います!
10月20日
Advent Calender 20日目、12月20日は、なんと、千と千尋の神隠しの!!!!??
シンガポールでの映画公開日です笑
せめて縁のある日に...ね?
実行!
コンソールにて、次のコマンドを打ち込んでください。
deno run https://kamekyame.github.io/yubaba-deno/契約書だよ。そこに名前を書きな.ts 千尋
このコマンドを実行すると
フン。千尋というのかい。贅沢な名だねぇ。今からお前の名前は千だ。いいかい、千だよ。分かったら返事をするんだ、千!!
と出力されます。
湯婆婆 for Deno の中身
ソースコードはGithubにあげてあります。
const n = Deno.args[0];
if (!n) Deno.exit();
const m = n[new Date().getTime() % n.length];
console.log(
`フン。${n}というのかい。贅沢な名だねぇ。今からお前の名前は${m}だ。いいかい、${m}だよ。分かったら返事をするんだ、${m}!!`,
);
export {};
まずは、1行目でコマンドライン引数を取得。
2行目では、契約書に名前が書かれていなかったら(n
がundefined
だったら)強制終了をしてます。
3行目では、Date().getTime()
を使用して疑似乱数のように使い、1文字を抽出。
最後にコンソールログで出力しています。
最終行のexport {}
がないと、エラーが出るようです。(Denoのファイルはモジュールベース?なので、importかexportがないとだめっぽい)
Denoファイルの実行
Denoを実行するときは、
Deno run [option] "ファイル名" [引数]
のようなコマンドで実行できます。
今回の場合、optionはなしで、ファイル名と引数を指定していますが、Denoではファイル名のところにURLを入れることで、インターネット上のファイルを直接実行することが出来ます。
今回は、契約書だよ。そこに名前を書きな。.ts
をGithubに置いて、Github pagesにて公開しているため、最初にあげたコマンドにて実行できます。
初回実行時には、ファイルのダウンロード&チェックが入るため、
Download https://kamekyame.github.io/yubaba-deno/%E5%A5%91%E7%B4%84%E6%9B%B8%E3%81%A0%E3%82%88%E3%80%82%E3%81%9D%E3%81%93%E3%81%AB%E5%90%8D%E5%89%8D%E3%82%92%E6%9B%B8%E3%81%8D%E3%81%AA%E3%80%82.ts
Check https://kamekyame.github.io/yubaba-deno/%E5%A5%91%E7%B4%84%E6%9B%B8%E3%81%A0%E3%82%88%E3%80%82%E3%81%9D%E3%81%93%E3%81%AB%E5%90%8D%E5%89%8D%E3%82%92%E6%9B%B8%E3%81%8D%E3%81%AA%E3%80%82.ts
という文が表示されますが、初回実行時にパソコン内にファイルがキャッシュされるため、2回目以降はきれいになります。
最後に
jig.jpインターンに参加できて、とてもよかったと思っています!
いろんな地方の人とも仲良くなれたので…
jig.jpインターンの様子は、はてなブログにて参加者が日替わりで綴っているので、jig.jpインターンに参加しなかった人も是非ご覧ください!
あと、ほかのインターン生・メンターのadvent calenderもよかったら覗いてみてください!