Komentar

Komentar dimulai dengan dua garis miring ke depan (//) dan berlanjut hingga akhir baris. Komentar akhir baris tersebut dapat muncul di mana saja dalam kode sumber. Q# saat ini tidak mendukung komentar blokir.

Komentar Dokumentasi

Komentar yang dimulai dengan tiga garis miring ke depan, ///, diperlakukan khusus oleh pengkompilasi ketika muncul sebelum jenis atau deklarasi yang dapat dipanggil. Dalam hal ini, kontennya diambil sebagai dokumentasi untuk jenis yang ditentukan atau dapat dipanggil, seperti untuk bahasa .NET lainnya.

Dalam komentar ///, teks untuk muncul sebagai bagian dari dokumentasi API diformat sebagai Markdown, dengan berbagai bagian dokumentasi yang ditunjukkan oleh header bernama khusus. Sebagai ekstensi untuk Markdown, referensi silang ke operasi, fungsi, dan jenis struct di Q# dapat disertakan menggunakan @"<ref target>," di mana <ref target> digantikan oleh nama objek kode yang sepenuhnya memenuhi syarat yang dirujuk. Secara opsional, mesin dokumentasi juga dapat mendukung ekstensi Markdown tambahan.

Contohnya:

/// # Summary
/// Given an operation and a target for that operation,
/// applies the given operation twice.
///
/// # Input
/// ## op
/// The operation to be applied.
/// ## target
/// The target to which the operation is to be applied.
///
/// # Type Parameters
/// ## 'T
/// The type expected by the given operation as its input.
///
/// # Example
/// ```Q#
/// // Should be equivalent to the identity.
/// ApplyTwice(H, qubit);
/// ```
///
/// # See Also
/// - Microsoft.Quantum.Intrinsic.H
operation ApplyTwice<'T>(op : ('T => Unit), target : 'T) : Unit {
    op(target);
    op(target);
}

Q# mengenali nama berikut sebagai header komentar dokumentasi.

  • Ringkasan: Ringkasan singkat perilaku fungsi atau operasi atau tujuan jenis. Paragraf pertama ringkasan digunakan untuk informasi hover. Ini harus teks biasa.
  • Deskripsi: Deskripsi perilaku fungsi atau operasi atau tujuan jenis. Ringkasan dan deskripsi digabungkan untuk membentuk file dokumentasi yang dihasilkan untuk fungsi, operasi, atau jenis. Deskripsi mungkin berisi simbol dan persamaan berformat LaTeX sebaris.
  • Input: Deskripsi tuple input untuk operasi atau fungsi. Mungkin berisi subbagian Markdown tambahan yang menunjukkan setiap elemen tuple input.
  • Output: Deskripsi tuple yang dikembalikan oleh operasi atau fungsi.
  • Parameter Jenis: Bagian kosong yang berisi satu subbagian tambahan untuk setiap parameter jenis generik.
  • Item Bernama: Deskripsi item bernama dalam jenis struct. Mungkin berisi subbagian Markdown tambahan dengan deskripsi untuk setiap item bernama.
  • Contoh: Contoh singkat operasi, fungsi, atau jenis yang digunakan.
  • Remarks: Prose lain-lain yang menjelaskan beberapa aspek operasi, fungsi, atau jenis.
  • Lihat Juga: Daftar nama yang sepenuhnya memenuhi syarat yang menunjukkan fungsi, operasi, atau jenis struct terkait.
  • Referensi: Daftar referensi dan kutipan untuk item yang didokumentasikan.