4
1

More than 3 years have passed since last update.

【Deno】(ちょっとせこい)0行プログラミングで湯婆婆

Last updated at Posted at 2020-12-19

この記事は、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にあげてあります。

契約書だよ。そこに名前を書きな。.ts
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行目では、契約書に名前が書かれていなかったら(nundefinedだったら)強制終了をしてます。

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もよかったら覗いてみてください!

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1