アプリ版:「スタンプのみでお礼する」機能のリリースについて

私は、こういうコードをよく書きます。

my $TDN = &func_hatten(8,10);
my $TON = &func_hatten(2,55);
my $MUR = &func_hatten(4,55);
my $YJSNPI = &func_hatten(7,55);
my $HOGE1 = &func_hatten(1,55);
my $HOGE2 = &func_hatten(9,55);
my $HOGE3 = &func_hatten(1,55);
my $HOGE4 = &func_hatten(9,55);

変数に、関数の戻り値を放り込むのですが、これが30個、40個もひとつのコードに書き込むのは美しくないような気がしています。
こういう場合は、プロの世界ではどうするのが「一般的」でしょうか?

A 回答 (5件)

追記。


戻り値に直接名称が必要な場合はハッシュを使うなどの方法があります。
戻り値関係なく、引数側だけに ('TDN', 8, 10)とすることでも双方向参照が可能になります。
大量であるならば検索に時間はかかるので不適切でしょうが。
    • good
    • 0

かなり省略。


@ary2 = grep { [$f->($_),] } @ary1;

# $ary1[$a] は $ary2[$a] と対応する。
# これだけでもたぶん動くとは思いますが、
# 見てのとおり概念的なイメージです。使いやすいように(使えるように)してお使いください。
    • good
    • 0

データとコードを分けるとか。


以下、表示がくずれるので空白2文字を全角にしていることに注意

use strict;
use warnings;

my %actor_of = (
  TDN => { args => [ 8, 10 ] },
  TON => { args => [ 2, 55 ] },
  MUR => { args => [ 4, 55 ] }
);

for my $actor (keys %actor_of) {
  $actor_of{$actor}->{return} = do_hoge( @{ $actor_of{$actor}->{args} } );
  print $actor, ": ", $actor_of{$actor}->{return}, "\n";
}

sub do_hoge {
  return $_[0] . ', ' . $_[1];
}

---
$ perl -w foo.pl
TON: 2, 55
MUR: 4, 55
TDN: 8, 10
    • good
    • 0

戻り値を格納した変数を、この後でどう使うかで決まります。



ループ内で使うのなら、配列に入れといたほうがいとか、
なにかのキーを使って処理するならハッシュに入れたほうが使いやすいとか。
    • good
    • 0

それぞれの変数は目的があっての事ですよね。



一般論では「変数の使い回しはメリットがない」ですね。なので目的が違う変数であればその数だけ用意するのが普通です。なので問題はないです。


PHPならJSONで受け渡ししたりクラスで受け渡ししたりするのもありますけどねー。関数がまとめられなければ難しいですけど。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!