Dela via


Uttryck

I grunden Q# är uttryck antingen värdeliteraraler eller identifierare, där identifierare kan referera till antingen lokalt deklarerade variabler eller till globalt deklarerade anropsbara värden (det finns för närvarande inga globala konstanter i Q#). Operatorer, kombinatorer och modifierare kan användas för att kombinera dessa till en bredare mängd olika uttryck.

  • Operatorer i en mening är inget annat än dedikerad syntax för vissa anropbara.

    Även om Q# det ännu inte är tillräckligt uttrycksfullt för att formellt samla in varje operatörs funktioner i form av en anropsbar deklaration, bör detta åtgärdas i framtiden.

  • Modifierare kan endast tillämpas på vissa uttryck. En eller flera modifierare kan tillämpas på uttryck som antingen är identifierare, åtkomstuttryck för matrisobjekt, namngivna objektåtkomstuttryck eller ett uttryck inom parentes som är detsamma som en enskild objekttuppel (se det här avsnittet). De kan antingen föregå (prefixet) uttrycket eller följa (postfix) uttrycket. De är därför särskilda enställiga operatorer som binder hårdare än funktions- eller åtgärdsanrop, men mindre snäva än någon form av objektåtkomst. Konkret är functors prefixmodifierare, medan unwrap-operatorn är en postfixmodifierare.

  • Precis som modifierare kan funktions- och åtgärdsanrop samt objektåtkomst ses som en särskild typ av operatör som omfattas av samma begränsningar för var de kan tillämpas. vi kallar dem för kombinatorer.

Avsnittet om prioritet och associativitet innehåller en fullständig lista över alla operatorer samt en fullständig lista över alla modifierare och kombinatorer.