Wyrażenia

W rdzeniu Q# wyrażenia są literałami wartości lub identyfikatorami, gdzie identyfikatory mogą odwoływać się do lokalnie zadeklarowanych zmiennych lub globalnie zadeklarowanych obiektów wywołujących (obecnie nie ma stałych globalnych w Q#obiekcie ). Operatory, kombinatory i modyfikatory mogą służyć do łączenia ich w szerszą gamę wyrażeń.

  • Operatory w pewnym sensie nie są niczym innym, jak dedykowaną składnią dla określonych obiektów wywołujących.

    Mimo że Q# nie jest jeszcze wystarczająco ekspresyjny, aby formalnie przechwycić możliwości każdego operatora w postaci deklaracji z możliwością wywołania zwrotnego, należy to naprawić w przyszłości.

  • Modyfikatory można stosować tylko do niektórych wyrażeń. Co najmniej jeden modyfikator można zastosować do wyrażeń, które są identyfikatorami, wyrażeniami dostępu do elementów tablicy, wyrażeniami dostępu do nazwanych elementów lub wyrażeniem w nawiasach, które są takie same jak krotka pojedynczego elementu (zobacz tę sekcję). Mogą poprzedzać wyrażenie (prefiks) lub obserwować wyrażenie (postfiks). W ten sposób są specjalnymi operatorami jednoargumentowymi, które wiążą ściślej niż wywołania funkcji lub operacji, ale mniej ciasne niż jakikolwiek dostęp do elementów. Mówiąc konkretnie, funktory są modyfikatorami prefiksów, natomiast operator unwrap jest modyfikatorem postfiksu.

  • Podobnie jak modyfikatory, wywołania funkcji i operacji, a także dostęp do elementów, mogą być postrzegane jako specjalny rodzaj operatora, którego dotyczą te same ograniczenia dotyczące tego, gdzie można je zastosować; nazywamy je kombinatorami.

Sekcja na temat pierwszeństwa i kojarzenia zawiera pełną listę wszystkich operatorów , a także pełną listę wszystkich modyfikatorów i kombinatorów.