You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerQuery类型定义语法差异与Table.Schema字段区别咨询

PowerQuery 技术问题解答

1. 为何类型定义语法存在两种形式?

一种使用type关键字(如type text表示文本类型),另一种不使用type关键字(如Int64.Type表示整数类型)。

这两种形式是同一类型实体的不同语法表达,核心区别在于使用场景:

  • type text是类型字面量语法,属于M语言原生的类型声明方式,写法简洁,适合在类型注解、自定义类型定义等场景直接声明类型。
  • Int64.Type是类型对象的属性引用,是内置类型对象的静态属性,本质是指向对应类型值的指针。这种写法更适合动态获取类型、或者在函数中传递类型对象的场景。

两者指向的是同一个类型,只是语法层面的不同呈现,按需选择即可。

2. Table.Schema中的*[TypeName]与[Kind]*字段有何区别?

Table.Schema()返回的表中,这两个字段都用于描述列的类型信息,但定位完全不同:

  • [TypeName]:代表具体的类型名称,是类型的精准标识。比如Int64.Type对应的TypeName是"Int64",自定义类型会显示你定义的专属名称,它直接对应到某一个具体的类型实现。
  • [Kind]:代表类型的大类分类,是对类型的抽象归类。比如Int64、Int32的Kind都是"Number",text的Kind是"Text",自定义记录类型的Kind是"Record"。它能帮你快速判断列属于哪一类数据范畴,无需关注具体子类型细节。

举个实际例子:某列类型为Int64.Type,则它的TypeName是"Int64",Kind是"Number";如果是自定义类型type Person = [Name=text, Age=Int64.Type],对应的TypeName是"Person",Kind是"Record"。


内容的提问来源于stack exchange,提问作者Denis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 16:01:32