Perl-这是函数的正确名称吗?
标题说明了一切。我试图为我的函数找到好的命名约定。有一些建议,但我想知道你的意见,如果可以使用较短的名称,仍然保留功能的意义。这是我的职责:Perl-这是函数的正确名称吗?,perl,naming-conventions,Perl,Naming Conventions,标题说明了一切。我试图为我的函数找到好的命名约定。有一些建议,但我想知道你的意见,如果可以使用较短的名称,仍然保留功能的意义。这是我的职责: sub convert_AoA_to_HoA_where_hash_key_is_element_from_particular_inner_array_index_and_hash_value_is_reference_to_this_inner_array(){ my ($argv1, $argv2, $argv3) = @_; my @AoA
sub convert_AoA_to_HoA_where_hash_key_is_element_from_particular_inner_array_index_and_hash_value_is_reference_to_this_inner_array(){
my ($argv1, $argv2, $argv3) = @_;
my @AoA = @$argv1;
my $HoA = $argv2;
my $index = $argv3;
foreach my $array (@AoA){
$HoA->{"$array->[$index]"} = $array;
}
}
如果必须这样做,这可能表明现有数据结构的适用性 同样,该功能非常简单,无需使用
map
专用子例程即可复制
由于结果散列的键是特定列的值,因此另一种方法是使用散列切片来阐明目的:
my %hash;
@hash{ map $_->[$index], @AoA } = @AoA;
<> P>我只考虑把它转换成子程序的时候,如果我不能控制传入的数据结构,需要为不同的索引输出单独的散列。话虽如此,
rehash_by_column_index
是这样一个sub的更合适的名称。如果必须这样做,这可能表明现有数据结构的适用性
同样,该功能非常简单,无需使用map
专用子例程即可复制
由于结果散列的键是特定列的值,因此另一种方法是使用散列切片来阐明目的:
my %hash;
@hash{ map $_->[$index], @AoA } = @AoA;
<> P>我只考虑把它转换成子程序的时候,如果我不能控制传入的数据结构,需要为不同的索引输出单独的散列。话虽如此,
rehash\u by_column\u index
是这样一个sub的更合适的名称。不必进行哲学辩论,您不需要将其作为一个函数
my %HoA = map { $_->[$index] => $_ } @AoA;
没有哲学上的争论,你不需要把它变成一个函数
my %HoA = map { $_->[$index] => $_ } @AoA;
你的函数名很快会以电影形式出现吗?我试着读小说,但没能读到。试着用短一点的。我喜欢把极其冗长的函数名和完全通用的参数名结合起来。像这样的子例程名是荒谬的。名称尽可能简短,但要具有描述性。例如sub AoA2HoA{…}。对它的详细描述可以是sub内部和开头的注释。您当前的名称可以是它上面的注释。Damian Conway的“Perl最佳实践”可以帮助您,您的函数名很快就会以电影形式出现吗?我试着读小说,但没能读到。试着用短一点的。我喜欢把极其冗长的函数名和完全通用的参数名结合起来。像这样的子例程名是荒谬的。名称尽可能简短,但要具有描述性。例如sub AoA2HoA{…}。对它的详细描述可以是sub内部和开头的注释。您当前的名称可以是它上面的注释。Damian Conway的“Perl最佳实践”可以帮助您做到这一点