なっく日報

技術やら生活やらのメモ

【徒然】各言語でqw演算子的に書く

Jenkinsを触って、maven(!)を触って、シェルスクリプト触って、Jenkinsを触って、シェルスクリプト触って・・・

という微妙な一日でございました。

アレルギーはなくなったものの、シェルスクリプトは相変わらず不慣れです。

が、for文はググらなくても使えるようになってきましたw

シェルスクリプト

こんな感じ!

#!/bin/bash
set -eux

DOGS=(
  pochi
  hachi
  taro
  jiro
)

for dog in "${DOGS[@]}"; do
  echo "$dog"
done

で、Perlで言うところのqw演算子的な書き方は便利だなぁと思い、各言語にあるのか調べてみた次第です。

Perl

これこれ。

use v5.12;
use warnings;

my @DOGS = qw(
  pochi
  hachi
  taro
  jiro
);

for my $dog(@DOGS) {
  say $dog;
}

Ruby

ついでにRubyも。

動くけど、細かいところは自信がありません。

DOGS = %w(
  pochi
  hachi
  taro
  jiro
)

DOGS.each {|dog| puts dog}

JavaScript (Node.js v4)

Node.jsも。

ないけど、それっぽく書けた。。

'use strict';

function qw(text) {
  return text.trim().split(/\s+/);
}

const DOGS = qw(`
  pochi
  hachi
  taro
  jiro
`);

for (let dog of DOGS) {
  console.log(dog);
}

Python

なさげ。Node.jsと同じくsplit作戦。

DOGS = """
  pochi
  hachi
  taro
  jiro
""".split()

for dog in DOGS:
  print dog

trimと空白文字の指定が不要な分、Node.jsよりシンプル。

まとめ

書き方に自信がありません。参考程度に。。