LoginSignup
15
1

自衛官からエンジニアへ Elixirから始める Web開発 Part 7

Last updated at Posted at 2023-12-06

この記事は「Elixir Advent Calendar 2023」7日目の記事です
東京にいるけどfukuokaexのYOSUKEです。

普段は 合同会社TheWaggle で教材開発・システム開発・研修講師などマルチに活動してます。

このシリーズでは、文系ですらない、体育会系でも始められるプログラミング学習 というテーマで元自衛官だった僕が
自衛官からエンジニアになってもらいたいという気持ちを込めて、普段は大人しいですが、このコラムシリーズでは、あえて、体育会系のノリで、貴様ら理屈で覚えるなら体で覚えろ!というノリで書いてみたいと思います。

なので、初学者向けですが、理論は後回し、まずは動かして体感しろってノリの第7回目です。

それでは、いくぞ!

人はそれを「変数」と呼ぶ

いいか、貴様ら!
前回、「貴様の持つ小銃の口径は何口径だ?と聞かれたら 5.56mm と答えられる」 この表現をプログラムで書く場合について教えると言っただろう。

その時に使ったデータの型はどんな名前の呼び方だったか覚えてるか?

何! 忘れただと!!!
貴様という奴は、体に覚え込ませる必要があるようだな。よし、そのまま駆け足だ、掛け声を真似してついてこい!

(心の中で掛け声を叫んでるようにリズム良く読みましょう、* は隊員を表現してます)
「イチ、イチ、イチ、ニィ」

  • 「イチ、イチ、イチ、ニィ」

「今日は」

  • 「今日は」

「天気が」

  • 「天気が」

「いいね!」

  • 「いいね!」

「マップは」

  • 「マップは」

「キーと」

  • 「キーと」

「バリューの」

  • 「バリューの」

「データ」

  • 「データ」

「欲しい」

  • 「欲しい」

「値を」

  • 「値を」

「入れて」

  • 「入れて」

「出して」

  • 「出して」

「入れて」

  • 「入れて」

「出して」

  • 「出して」

「気分が」

  • 「気分が」

「いいね」

  • 「いいね」

思い出したか!「マップ」だ「キー」と「バリュー」の関係で整理するデータ構造だ!
と言うことで早速、マップを準備しよう。

%{ 
   "名称" => "20式5.56mm小銃" ,
   "種類" => "小銃" ,
   "製造国" =>  "日本" ,
   "口径" =>	"5.56 mm" ,
   "銃身長" => "330 mm" ,
   "使用弾薬" =>	"89式5.56mm普通弾" , 
   "装弾数" => "30発" ,
   "作動方式" => "ガス圧作動方式" ,
   "全長" =>	"851 mm (銃床最小 779 mm)" ,
   "重量" => "3.5 kg" ,
   "発射速度" =>	"650 – 850発/分" ,
   "有効射程" =>	"500 m以上"
}

よし、この状態で、前回先に述べた「貴様の持つ小銃の口径は何口径だ?と聞かれたら 5.56mm と答えられる」方法を教えてやろう。

まず、貴様の名前をいえ!
アサルトだと! 物騒な名前だな。よしいいだろう。アサルト! 貴様はプログラムの世界では asult と呼ぶことにしよう。
なぜ、カタカナではなく、英語のしかも半角文字を使うかだと?

それは色々と都合がいいからだ! いいか貴様らにはまだ理屈は早い! とりあえず、名前をつけるときは半角英数字を使うと覚えておけ!いいな、話しがややこしくなるから、この話しはこれで終いだ!

まず asultにマップのデータを持たせよう。


asult = %{ 
   "名称" => "20式5.56mm小銃" ,
   "種類" => "小銃" ,
   "製造国" =>  "日本" ,
   "口径" =>	"5.56 mm" ,
   "銃身長" => "330 mm" ,
   "使用弾薬" =>	"89式5.56mm普通弾" , 
   "装弾数" => "30発" ,
   "作動方式" => "ガス圧作動方式" ,
   "全長" =>	"851 mm (銃床最小 779 mm)" ,
   "重量" => "3.5 kg" ,
   "発射速度" =>	"650 – 850発/分" ,
   "有効射程" =>	"500 m以上"
}

= はパターンマッチと教えたはずだが、asultのように半角英数で書かれて、かつ`:コロンも " " ダブルクォテーションもついてない場合には、自由にパターンマッチすることができる。

ちなみに、asultは、最初は何もパターンマッチされてないとエラーが出る。

スクリーンショット 2023-12-06 21.35.10.png

asult 貴様、何も装備をしてないのか!それでも軍人か! 戦場に銃を持たずに何しに行く気だ!と怒られてるようなものだ。必ず、最初に装備をさせる必要があると思え!

よし、いよいよ「貴様の持つ小銃の口径は何口径だ?と聞かれたら 5.56mm と答えられる」方法を伝授しよう!

asult["口径"]

スクリーンショット 2023-12-06 21.45.54.png

これが、言わば貴様らに銃を持たせ、貴様らが持っている銃の口径は何だ!と聞いてるようなものだ!

よし、これでやり方はわかったか! では、"重量" を聞きたい場合はどうする?

asult["重量"]

そうだ! キーを伝えるんだ!
よーし! いいぞ、これで貴様はマップデータを使う方法を覚えたな!
他にも色々な方法があるが、貴様にはまだ早い!

今日はここまで、それでは次回 Part8でまた会おう!

15
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
15
1