Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Öznitelikler, derleyicinin bildirimin Q# işlenme biçimini değiştirmek için kullandığı bir bildirime ek bilgi ekler. Öznitelik, baştaki @ bir simgeyle, ardından öznitelik adı ve ayraçlı bağımsız değişken listesiyle yazılır ve uygulandığı bildirimden hemen önce yerleştirilir.
@EntryPoint()
operation Main() : Result {
use q = Qubit();
H(q);
MResetZ(q)
}
Her özniteliği bildirimden önce kendi satırına yerleştirerek aynı bildirime birden fazla öznitelik uygulayabilirsiniz.
Q# aşağıdaki yerleşik öznitelikleri destekler.
@EntryPoint()
özniteliği, @EntryPoint() bir işlemi veya işlevi bir programın yürütmesinin başlangıç noktası olarak işaretler. Bir giriş noktası belirtmezseniz, varsa derleyici işlemden yürütmeyi Main() başlatır. Özniteliğini @EntryPoint() giriş noktası yapmak için giriş parametresi içermeyen çağrılabilen herhangi bir öğeye yerleştirebilirsiniz.
@EntryPoint()
operation MeasureOneQubit() : Result {
use q = Qubit();
H(q);
MResetZ(q)
}
Projenin parçası olmayan tek .qs bir Q# dosyada çalışırken, programın QIR hedef profilini ayarlamak için özniteliğine , @EntryPoint(Adaptive_RI), @EntryPoint(Adaptive_RIF)veya @EntryPoint(Unrestricted)gibi @EntryPoint(Base)bir hedef profil adı da geçirebilirsiniz. Daha fazla bilgi için bkz . Kuantum bilişimi hedef profilleri.
@Config(...)
özniteliği, @Config(...) geçerli hedef profilin özelliklerine bağlı olarak bir bildirimin derlemeye ne zaman dahil edilmesi gerektiği hakkında ön işleme bilgileri sağlar. Bu, kitaplığın farklı özelliklere sahip hedefler için çağrılabilen farklı uygulamaları sağlamasına olanak tanır.
Geçerli bağımsız değişkenler : Base, Adaptive, IntegerComputations, FloatingPointComputations, BackwardsBranching, HigherLevelConstructs, ve Unrestricted. Bir bağımsız değişkeni işleciyle not , yalnızca özellik kullanılabilir olmadığında bildirimi içerecek şekilde olumsuzlayabilirsiniz.
@Config(Adaptive)
operation MeasureAndReset(q : Qubit) : Result {
let result = M(q);
if result == One {
X(q);
}
result
}
@Config(not Adaptive)
operation MeasureAndReset(q : Qubit) : Result {
MResetZ(q)
}
@Test()
özniteliği çağrılabilen @Test() bir birim testine dönüştürür. Bunu yalnızca giriş parametresi içermeyen çağrılabilen bir uygulamaya uygulayabilirsiniz. Bu öznitelikle işaretlenmiş testler, Visual Studio Code'deki Test görünümünde görünür ve burada bunları tek tek veya grup olarak çalıştırabilirsiniz. Daha fazla bilgi için bkz. Programları test etme ve hata ayıklamaQ#.
@Test()
operation TestCase() : Unit {
Fact(1 + 1 == 2, "Expected 1 + 1 to equal 2.");
}
İç çağrılabilenler için öznitelikler
Aşağıdaki öznitelikler , Kuantum Ara Gösterimi (QIR) kod oluşturma sırasında iç çağrılabilen bir değerin nasıl ele alınır açıklanmaktadır. Bunlar öncelikli olarak düşük düzeyli iç işlemleri tanımlayan kitaplık ve donanım yazarları tarafından kullanılır.
@SimulatableIntrinsic()
@SimulatableIntrinsic() özniteliği, çağırılabilir bir değerin QIR kod oluşturma için iç çağrılabilir olarak ele alınması gerektiğini belirtirken, sağladığınız gövde yalnızca simülasyon sırasında kullanılır. Bu, hedef donanıma uygun olmayan bir işlem için simülasyon uygulaması sağlamanıza olanak tanır.
@Measurement()
özniteliği, @Measurement() iç çağrılabilen bir ölçümün olduğunu gösterir. İşlem, oluşturulan QIR'de geri alınamaz olarak işaretlenir ve çıkış Result değeri oluşturulan işlevin bağımsız değişkenlerine taşınır.
@Reset()
özniteliği, @Reset() iç çağrılabilen bir sıfırlama olduğunu gösterir. İşlem, oluşturulan QIR'de geri alınamaz olarak işaretlenir.