En iyi çözüm, açıkçası, yorumlarınızı yerleştirmemek. İç içe yorumlar, genellikle yorumları yanlış kullandığınızın bir işaretidir. En yaygın örnek, yorum içeren koddur ve düzeltilmesi, yorum yapmak yerine kodu kaldırmaktır.
Bununla birlikte, birçok programlama dili birden fazla yorum sözdizimine sahiptir ve bu gerçeği en az bir seviye derinleştirmek için kullanabilirsiniz. Örneğin, Java’da:
/* This is commented out!
Foo.bar.baz();
// And now for something completely different...
Quux.runWith(theMoney);
*/
Ayrıca, birçok dilde, en az bir tür yorum yapılabilir; C benzeri dillerde, satır açıklamalarının içindeki satır açıklamaları dikkate alınmaz:
// some_commented_out(code);
// // This is a comment inside the comment!
// // Still inside the nested comment.
// some_more_code_in(outer_comment);
Çoğu IDE, tüm kod bloklarını bir eylemde satır yorumlarıyla yorumlamayı destekler ve bu tür bir yorumlama stilini doğru kullanırlar. Python'da da aynı örnek:
# some_commented_out(code)
# # This is a comment inside the comment!
# # Still inside the nested comment.
# some_more_code_in(outer_comment)
Genellikle, belirli bir projenin kodlama standartları, hangi yorum stilinin ne zaman kullanılacağı hakkında kurallara sahiptir; Ortak bir kural, /* */
yöntem ve sınıf dokümantasyonu için blok açıklamaları ( ) ve //
yöntem organları içindeki açıklamalar için satır içi açıklamaları ( ) kullanmaktır.
/**
* Helper class to store Foo objects inside a bar.
*/
public class Foobar {
/**
* Stores a Foo in this Foobar's bar, unless the bar already contains
* an equivalent Foo.
* Returns the number of Foos added (always 0 or 1).
*/
public int storeFoo(Foo foo) {
// Don't add a foo we already have!
if (this.bar.contains(foo)) {
return 0;
}
// OK, we don't have this foo yet, so we'll add it.
this.bar.append(foo);
return 1;
}
}
Böyle bir stille, /* */
yorumları yerleştirmeniz gerekmeyebilir (tüm yöntemleri veya sınıfları geçici olarak devre dışı bırakmanız gerekiyorsa , yeniden adlandırma işlemi daha iyi olmasa da aynı şekilde güzel çalışır); ve //
yorumlar , en azından IDE'nizden biraz yardım alarak, yuva yapar .
Son olarak, kodu devre dışı bırakmak için birçok programlama dilinde başka seçenekleriniz vardır; örneğin, C'de, önişlemciden yararlanabilirsiniz:
this_is(activated);
#if 0
this_is(!activated);
/* Comments inside this block don't really nest, they are simply removed
along with the rest of the block! */
#endif
Dinamik dillerde, if
bunun yerine genellikle normal ifadeleri kullanabilirsiniz :
<?php
if (0) {
// This should never run...
some_stuff_that_should_never_run();
}
Bununla birlikte, CPP örneğinden farklı olarak, bu strateji kaynak dosyanın bir bütün olarak sözdizimsel olarak geçerli olmasını gerektirir, bu yüzden esnek değildir.
Ve son olarak, iç içe yorumlara izin veren en azından bazı diller var. İlgilendiğiniz takdirde wikipedia'nın güzel bir karşılaştırma tablosu var .