Лучший синтаксис для объявления типов данных в M - Text.Type или тип текста? - PullRequest
2 голосов
/ 26 сентября 2019

Для M в Power Query / PowerBI, какой синтаксис я должен использовать для установки типов данных?
A) type text (или type logical, type date и т. Д.)
B) Text.Type (или Logical.Type, Date.Type и т. д.)

Теперь, когда существует опция B, есть ли основания когда-либо использовать синтаксис опции A?Я попытался прочитать главу 5 спецификации языка Power Query M , но не смог найти четкого ответа.

Вот один пример использования Table.AddColumn (хотя типы данных отображаются везде):

let
   OldTable = #table({"Col1"},{{"This column"}}),
   fMyFunc = (paramText as text ) as text => let returnText = paramText & "_new" in returnText,
   NewTable = Table.AddColumn(OldTable, "NewCol", each "Sample", Text.Type),
   NewerTable = Table.AddColumn(NewTable, "NewerCol", each fMyFunc([NewCol]), Text.Type)
in
   NewerTable

Я полагаю, что вариант B был введен просто для стандартизации определений типов;например, было Int64.Type, но не type Int64.Таким образом, ответ на мой вопрос может быть «Это не имеет значения».Но, если какой-то вариант будет консенсусом на будущее, я бы предпочел начать с согласованности в моем коде.

Ответы [ 2 ]

1 голос
/ 26 сентября 2019

Поскольку тип не строго соблюдается ( MS type doc ), а также отсутствие какого-либо «руководства по стилю» от Microsoft, что делает этот вопрос вопросом мнения.Я бы использовал примитивные типы (как описано в спецификации языка M, глава 5), если вы явно не требуете не примитивного типа, такого как Int16.Type, для вашего решения.

1 голос
/ 26 сентября 2019

Я бы согласился, что это не имеет значения, кроме как со стилистической точки зрения.

Как вы упомянули, не примитивные типы, такие как Int64.Type, не могут быть записаны как type Int64, как вы можете сtype text, поэтому, если вы хотите, чтобы ваш стиль соответствовал примитивным и не примитивным типам, вам нужен вариант B.


Примитивные типы, перечисленные на стр. 48 и 49 документа, который вы связалиявляются:

  • type null, который классифицирует нулевое значение
  • type logical, который классифицирует значения true и false
  • type number,который классифицирует числовые значения
  • type time, который классифицирует значения времени
  • type date, который классифицирует значения даты
  • type datetime, который классифицирует значения даты и времени
  • type datetimezone, который классифицирует значения datetimezone
  • type duration, который классифицирует значения продолжительности
  • type text, который классифицирует текстовые значения
  • type binary, который классифицируетдвоичные значения
  • type type, которые классифицируют значения типа.
  • type list, который классифицирует значения списка
  • type record, который классифицирует значения записи
  • type table, который классифицирует значения таблицы
  • type function, который классифицируетЗначения функции
  • type anynonnull, которая классифицирует все значения, кроме нуля
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...