Ad alanları

En üst düzeyde, bir Q# program bir dizi ad alanı içerir. Açıklamaların yanı sıra, ad alanları bir Q# programdaki tek üst düzey öğelerdir ve diğer öğelerin bir ad alanında bulunması gerekir. Her dosya sıfır veya daha fazla ad alanı içerebilir ve her ad alanı birden çok dosyaya yayılabilir. Q# iç içe ad alanlarını desteklemez.

Not

Açıkça bir ad alanı bildirmezseniz, Q# derleyici ad alanı adı olarak dosya adını kullanır.

Ad alanı bloğu anahtar sözcüğünden namespaceve ardından ad alanı adından ve küme ayraçlarının { }içindeki bloğun içeriğinden oluşur. Ad alanı adları, nokta () ile ayrılmış bir veya daha fazla . oluşan bir diziden oluşur. Ad alanı adları daha iyi okunabilirlik için noktalar içerebilir ancak Q# ad alanlarına göreli başvuruları desteklemez. Örneğin, iki ad alanı Foo ve Foo.Bar ilişkisizdir ve hiyerarşiye ilişkin bir bildirim yoktur. Özellikle, içinde Bar.Baz.

Ad alanı blokları içeri aktarma yönergeleri, işlemler, işlevler ve tür bildirimleri içerebilir. Bu öğeler herhangi bir sırada gerçekleşebilir ve varsayılan olarak özyinelemeli olabilir, yani herhangi bir sırayla bildirilebilir ve kullanılabilir ve kendilerini çağırabilir. Bir türün bildirimine veya kullanımından önce çağrılabilen bir bildirime gerek yoktur.

İçeri Aktarma Yönergeleri

Varsayılan olarak, aynı ad alanında bildirilen her şeye başka niteleme olmadan erişilebilir. Ancak, farklı bir ad alanı içindeki bildirimler yalnızca adlarını ait oldukları ad alanının adıyla niteleyerek veya aşağıdaki örnekte gösterildiği gibi kullanılmadan önce bu ad alanını açarak kullanılabilir.

namespace Microsoft.Quantum.Samples {
    
    import Microsoft.Quantum.Arithmetic.*; 
    import Microsoft.Quantum.Arrays.* as Array; 

    // ...
}

Not

Standart Q# kitaplıktaki ad alanları için, ad alanının kökü olarak Stdbasitleştirilebilir. Örneğin, önceki örnek şu şekilde yeniden yazılabilir:

import Std.Arithmetic.*; 
import Std.Arrays.* as Array; 

Örnek, ad alanında import bildirilen tüm türleri ve çağrılabilenleri içeri aktarmak için bir Microsoft.Quantum.Arithmetic yönerge kullanır. Bu ad, ad alanı bloğundaki veya başka bir açık ad alanındaki bir bildirimle çakışmadığı sürece, onlara nitelenmemiş adlarıyla başvurabilirsiniz.

Belirli öğelerin nereden geldiğini ayırt ederken tam adı yazmaktan kaçınmak için, belirli bir ad alanı için alternatif bir ad veya diğer ad tanımlayabilirsiniz. Bu durumda, bu ad alanında bildirilen tüm türleri ve çağrılabilenleri tanımlı kısa adla niteleyebilirsiniz. Önceki örnekte ad alanı için Microsoft.Quantum.Arrays bir diğer ad kullanılır. Daha sonra, içinde bildirilen IndexRangeişlevini Microsoft.Quantum.Arrayskullanabilirsiniz, örneğin, Array.IndexRange bu ad alanı bloğunun içinde aracılığıyla.

İster ad alanını açarken ister diğer ad tanımlarken, import yönergeler yalnızca bu dosyadaki ad alanı parçası boyunca geçerlidir.