毎日投稿する技術ブログ(WEB系)

2018年12月から毎日技術ブログを投稿してます。 何か不備があれば、お気軽にコメント頂けると有り難いです。

shiftメソッドで、配列の最初の要素を削除して返す

f:id:ryoutaku_jo:20190523214629p:plain

【結論】

・shiftメソッドは、配列の最初の要素を返して、その要素を削除するメソッド

・引数を指定すると、その数だけ要素を返して、削除を行う

・繰り返し文以外で、連番を付与したい場合などに利用できる

【目次】

【本題】

shiftメソッドについて

shiftメソッドとは、配列の最初の要素を返して、その要素を削除するメソッドです。

# 配列を定義
pico = ["pen", "pineapple", "apple"]

# 先頭の"pen"を返す
pico.shift
=>pen

# 先頭の"pen"が削除されている
pico
=> ["pineapple", "apple"]

引数で操作する要素の数を指定

また、引数を指定する事で、操作する要素の数を指定する事も可能です。

# 配列を定義
taro = [1, 2, "さ〜ぁん", 4, 5, "ろぉ〜くぅ"]

# 引数で指定した数だけ要素を配列にまとめて返す
taro.shift(3)=>[1, 2, "さ〜ぁん"]

# 先頭3つの要素が削除される
taro
=> [4, 5, "ろぉ〜くぅ"]

連番を振りたい場合に活用

活用方法の一例として、連番を振るケースがあります。

# 1から100を格納した配列を定義
nums = [*1..100]

# 配列から順にレコードへ番号を格納
record_1 = nums.shift
record_2 = nums.shift
record_3 = nums.shift

record_1
=>1

record_2
=>2

record_3
=>3

下記の様に変数を足していく方法もあります。

num = 0

record_1 = nums + 1
record_2 = nums + 1
record_3 = nums + 1

但しshiftメソッドの方が、一度割り振った番号は削除されて同じ番号が割り振られる危険性は低いという点で、メリットがあると考えています。

なおeach文であれば、indexなど他に便利なメソッドで連番を割り振る事が可能です。

参考情報

shift (Array) - Rubyリファレンス

《今日の学習進捗(3年以内に10000時間に向けて)》

・社内勉強会にてAWSを運用する上でのリスク管理(コスト・セキュリティ)について学んだが、実際に発生した事象を交えて解説してくださったので、非常にイメージしやすかった。個人レベルでEC2・S3でサービスを構築したことはあるが、実務レベルの経験は無いので、こういった実際の現場で発生した事象を共有いただけるのは、学びが多く有り難い。中でも「IAM roleのアタッチをする運用」については、非常に興味深かったので、土日に調べて試してみたい。

・久しぶりにHamlを触ったが、思う様にフォームを組み込めず、苦戦した。慣れの問題ではあるが、要所を復習し直して、スムーズに取り組める様に努めたい。

学習開始からの期間 :167日
今日までの合計時間:1622h
一日あたりの平均学習時間:9.8h
今日までに到達すべき目標時間:1525h
目標との解離:97h
「10,000時間」まで、

残り・・・「8378時間!」