你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

类型系统

随着量子算法的重点是实现什么,而不是在数据结构方面的问题表示形式,对语言设计采取更强大的功能视角是一个自然的选择。 同时,类型系统是一种强大的机制,可用于程序分析和其他编译时检查,有助于制定可靠的代码。

总的来说,Q# 类型系统相当简明,从某种意义上说,类或接口没有明确的概念,因为一个类或接口可能用来从经典语言,如 C# 或 Java。 我们还采取了一种有点务实的方法,取得了增量进展,使某些构造尚未完全集成到类型系统中。 例如,函数可在表达式中使用,但在类型系统中尚没有表示形式。 相应地,它们当前无法分配或作为参数传递,就像类型参数化可调用对象的案例一样。 我们希望在扩展类型系统方面取得增量进展,并将即时需求与长期计划保持平衡。

可用类型

Q# 中的所有类型都 不可变

类型 说明
Unit 表示唯一值为 ()的单一实例类型。
Int 表示 64 位有符号整数。 范围从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。
BigInt 表示任何大小的有符号整数
Double 表示双精度 64 位浮点数。 范围从 -1.79769313486232e308 到 1.79769313486232e308 以及 NaN(不是数字)。
Bool 表示 的布尔值值。 可能的值为 truefalse
String 将文本表示为由 UTF-16 代码单元序列组成的
Qubit 表示可以寻址虚拟量子内存的不透明标识符。 Qubit 类型的值 通过分配实例化。
Result 表示使用特征值±1 对量子运算符的特征空间进行投影度量的结果。 可能的 ZeroOne
Pauli 表示单量子位 Pauli 矩阵。 可能的 PauliIPauliXPauliYPauliZ
Range 表示一个相同间距 Int 值的有序序列。 可以按升序或降序表示序列。
Array 表示 每个值都包含相同类型的值序列。
表示 ,每个值都包含不同类型的固定数量的项。 包含单个元素的元组等效于它们所包含的元素。
struct 表示由不同类型的命名项组成的 用户定义类型声明新实例时实例化 值。
操作 表示一个非确定性 可调用,它采用一个(可能为元组值)输入参数,并返回一个(可能为元组值)输出。 对作 值的调用 可能会产生副作用,即使使用相同的参数调用,输出也可能有所不同。
功能 表示一个确定性 可调用的,它采用一个(可能为元组值)输入参数并返回一个(可能为元组值)输出。 对函数 值的调用 没有副作用,并且如果输入相同,输出将始终相同。