Yıllar önce Applesoft Basic'i öğrendim. Dizeler her zaman eklenmiş $
ve diziler ek eklenmişti %
. Bu dilin nasıl çalıştığıdır. Bir şeye baktın, ne olduğunu biliyordun. Tercümanın neden böyle olduğunu veya bunu yapan tasarım kararlarını anlamak için asla çok fazla araştırmadım.
Php desen (etkilenmiştir kendi Perl etkisi gelir awk
ve sh
). Perl'deki sigil, $
birçok farklı türü tanımlayabildiğinden biraz daha fazladır :
$
sayısal
@
liste
%
esrar
&
kod bloğu
*
typeglob
Sigil, sembol tablosu yapısının hangi kısmına baktığınızı tanımlar. Sahne arkasında, foo ( *foo
typeglob aracılığıyla erişilir) için sembol tablosu girişi foo olabilecek her şeye sahiptir. Orada $foo
, @foo
, %foo
, biçim foo
, &foo
, dt foo, vs ...
Bu aynı zamanda bir değişkenin diğerine takma adını oluşturmaya izin verir:
#!/usr/bin/perl
$foo = "foo";
@qux = (1,2);
*bar = \$foo;
*bar = \@qux;
print "$bar @bar\n";
Bu baskılar foo 1 2
- perl'de, bu imzaların gerçekten ne için olduğunu, bunu yapmanız gerektiği değil, yaptıkları sahnenin arkasında bu var.
İşaretler okunabilirlik için çok fazla değil, daha ziyade isim alanında bir çarpışma olabilir $foo
ve @foo
olmadan (her ikisine birden sahip olamayacağı diğer dilleri karşılaştırın int foo; int[] foo;
)
Okunabilirlik işaretleri, herhangi bir dilin parçası olarak öğrenilen bir şeydir - sözdizimini okuyarak. Varsayımsal olarak, tanımlayıcının bir parçası olmak için türün kendisini (Macarca gösterim olarak) zorlayabilirsiniz.
Lex satırlarında bir şey:
typeChar [is]
capLetter [A-Z]
letter [a-z]
digit [0-9]
%%
{typeChar}{capLetter}(letter}|{digit})* { prientif("iddentifier");}
%%
Ve sonra kodunuz olabilir.
iFoo = 42;
sFoo = "a string";
iBar = iFoo * 2;
Bunun iyi bir fikir olduğunu söylemiyorum, aksine dile alışmış birisinin bunu doğal olarak okuyabileceğini ve okunabilirliği artırdığını düşünürken, dili bilmeyen biri sadece eklediğini düşünebilir dile bir sürü gürültü.
Ancak, bu şekilde tanımlanan bir dille çalıştıktan sonra, muhtemelen sorunsuz bir şekilde okuyabiliyordum.
Bazı insanlar onlar gibi, bazıları sevmez. Bunu tartışan çeşitli forumlarda büyük kutsal savaşlar var ve onları ne kadar kullandığınıza bağlı.
İmzacı kullanan programcı olmayanlar için yeni bir dil tasarlanabilir ve daha önce hiç programlamamış olanlar asla onlardan bir parça şikayet etmezler. Öte yandan, onları dilin bir parçası olarak alamazsınız ve daha sonra yakut veya perl programcılarının bazı önemli bilgileri kaçırdıklarından şikayet edemezsiniz.
Gerçekten önemli değil. Önemli olan, eğer kullanırsanız veya kullanmazsanız, sigillerin dile nasıl uyum sağlayacağıdır. Yapabilmek ister "123 $foo 456"
misiniz yoksa yapmak zorunda "123 " + foo + " 456"
mısınız? Kararın alınması gereken yer burasıdır.