ЕЧИСЛО, ЕТЕКСТ и прочие радости с оператором is
#АнатомияФункций - основы
Всем привет!
Вроде несколько раз обсуждали этот вопрос – и тем не менее продолжают возникать затруднения с определением того, принадлежит ли значение к определенному типу (если быть точным – совместим ли тип значения с определённым типом).
По этому поводу код:
Собственно, кроме кода тут и говорить почти нечего – оператор is позволяет осуществить проверку, совместим ли тип значения с соответствующим примитивом, т.е. грубо говоря, позволяет проверить является ли значение числом, текстом, таблицей или функцией. За техническими деталями, без обид, отправляю в справку. А здесь, чисто для иллюстрации, прошу обратить внимание на два последних столбца – все значения совместимы с any (все они чем-то да являются) и ни одно не совместимо с none (т.е. даже null больше, чем просто ничего).
Как-то так – сугубо технический пост, чтобы было на что давать ссылку)))
Надеюсь, было полезно.
Всех благ!
@buchlotnik
#АнатомияФункций - основы
Всем привет!
Вроде несколько раз обсуждали этот вопрос – и тем не менее продолжают возникать затруднения с определением того, принадлежит ли значение к определенному типу (если быть точным – совместим ли тип значения с определённым типом).
По этому поводу код:
let
from = #table({"val"},{{null},{1.23},{"текст"},{false},{#date(2024,2,3)},{#datetime(2024,2,3,12,34,56)},{{1..3}},{[a=1]},{#table({},{})},{(x)=>x}}),
lst={ {"ЕПУСТО",(x)=>x=null}, //можно и x is null
{"ЕЧИСЛО",(x)=>x is number},
{"ЕТЕКСТ",(x)=>x is text},
{"ЕЛОГИЧ",(x)=>x is logical},
{"ЕДАТА",(x)=>x is date},
{"ЕДАТАВРЕМЯ",(x)=>x is datetime},
{"ЕСПИСОК",(x)=>x is list},
{"ЕЗАПИСЬ",(x)=>x is record},
{"ЕТАБЛИЦА",(x)=>x is table},
{"ЕФУНКЦИЯ",(x)=>x is function},
{"ЕЧТОУГОДНО",(x)=>x is any},
{"ЕВООБЩЕНИЧЕГО",(x)=>x is none}},
to=List.Accumulate(lst,from,(s,c)=>Table.AddColumn(s,c{0},(r)=>c{1}(Record.Field(r,"val"))))
in
to
Собственно, кроме кода тут и говорить почти нечего – оператор is позволяет осуществить проверку, совместим ли тип значения с соответствующим примитивом, т.е. грубо говоря, позволяет проверить является ли значение числом, текстом, таблицей или функцией. За техническими деталями, без обид, отправляю в справку. А здесь, чисто для иллюстрации, прошу обратить внимание на два последних столбца – все значения совместимы с any (все они чем-то да являются) и ни одно не совместимо с none (т.е. даже null больше, чем просто ничего).
Как-то так – сугубо технический пост, чтобы было на что давать ссылку)))
Надеюсь, было полезно.
Всех благ!
@buchlotnik