SORU
23 Ocak 2009, Cuma


Perl bir numaralandırma türü var mı?

Perl bir numaralandırma türü varbu en iyi uygulamalara uygunya da belki daha da önemlisi, bir şeye ihtiyacı var mı?

Bir, üzerinde çalıştığım proje genellikle C gibi bir dilde bir Numaralama kullanacağı şeyler göstermek için her yerde dizeleri kullanır#. Örneğin, karma, her telefon türü ile ilişkilendirilmiş bir dizi telefon numaraları var ("Ev", "", "", vb.) Cep: İş

$phone_number->{type} = 'Home';

Değişkenleri salt okunur bir dizi burada kullanmak için yeterli olur mu ya da bir Numaralandırma kullanılmalıdır? enum module on CPAN buldum ama Perl Best Practices birini ihlal eden çıplak kelimeler kullanmak gibi görünüyor. read-only variables kullanma ile ilgili düşüncelerim şöyle:

use Readonly;

Readonly my $HOME   => 'Home';
Readonly my $WORK   => 'Work';
Readonly my $MOBILE => 'Mobile';

$phone_number->{type} = $HOME;

Bu iyi bir yaklaşım mı yoksa daha iyi bir yolu var mı?

CEVAP
23 Ocak 2009, Cuma


Hayır, yerleşik yapı numaralama değil. Perl sıkı yazarak bir sürü yapmak değil, aslında bir kişi için küçük gerek yok sanırım.

Benim görüşüme göre, kullanılan Readonly yaklaşım sağlam.

Ayrıca daha geleneksel constant pragma var.

use constant {
    HOME   => 'Home',
    WORK   => 'Work',
    MOBILE => 'Mobile',
};

$phone_number->{type} = HOME;

Perde arkasında, Yukarı DEĞER gibi döndüren her sabit için bir işlevi ayarlar.

sub HOME () { 'Home' }

Örneğin bu özelliği,: yararlanmak istemiyorsan Readonly ile ilgileniyorum

package Phone::Type;

use constant {
    HOME => 'Home',
    #...
};

package main;

print Phone::Type->HOME, "\n";

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ExcelIsFun

    ExcelIsFun

    16 ŞUBAT 2008
  • Thehalopianoplayer

    Thehalopiano

    4 ŞUBAT 2011
  • TROPFEST

    TROPFEST

    27 Mart 2007