Değer türleri, değere göre geçiş, referans türleri ve referansla geçiş arasındaki farkı düşünmenin iyi bir yolu:
Değişken bir kaptır.
Bir değer türü değişkeni bir örnek içerir. Bir başvuru türü değişkeni, başka bir yerde saklanan bir örneğin işaretçisi içerir.
Bir değer türü değişkenini değiştirmek içerdiği örneği değiştirir. Bir başvuru türü değişkeninin değiştirilmesi, işaret ettiği örneği değiştirir.
Ayrı başvuru türü değişkenleri aynı örneği gösterebilir. Bu nedenle, aynı örnek, ona işaret eden herhangi bir değişken aracılığıyla mutasyona uğratılabilir.
Bir by-pass değeri bağımsız değişkeni, içeriğin yeni bir kopyasına sahip yeni bir kapsayıcıdır. Başarılı bir bağımsız değişken, orijinal içeriğine sahip orijinal kapsayıcıdır.
Bir değer türü bağımsız değişkeni değere göre geçtiğinde: Kapsayıcı benzersiz olduğu için bağımsız değişkenin içeriğini yeniden atamanın kapsam dışında bir etkisi olmaz. Örnek bağımsız bir kopya olduğu için, bağımsız değişkeni değiştirmenin kapsam dışında bir etkisi yoktur.
Bir başvuru türü bağımsız değişkeni değere göre iletildiğinde: Bağımsız değişkenin içeriğini yeniden atamanın, kapsayıcı benzersiz olduğu için kapsam dışında bir etkisi olmaz. Kopyalanan işaretçi paylaşılan bir örneği işaret ettiğinden, bağımsız değişkenin içeriğini değiştirmek harici kapsamı etkiler.
Herhangi bir bağımsız değişken başvuru yoluyla iletildiğinde: Bağımsız değişkenin içeriğini yeniden atamak, kapsayıcı paylaşıldığı için dış kapsamı etkiler. Bağımsız değişkenin içeriğinin değiştirilmesi, içerik paylaşıldığı için dış kapsamı etkiler.
Sonuç olarak:
Dize değişkeni, başvuru türü bir değişkendir. Bu nedenle, başka bir yerde saklanan bir örneğe bir işaretçi içerir. Değere göre iletildiğinde, işaretçisi kopyalanır, bu nedenle bir dize bağımsız değişkenini değiştirmek paylaşılan örneği etkiler. Ancak, bir dize örneğinin değiştirilebilir özellikleri olmadığından, bir dize bağımsız değişkeni yine de değiştirilemez. Referansla iletildiğinde, işaretçinin kapsayıcısı paylaşılır, bu nedenle yeniden atama yine de dış kapsamı etkiler.