возвращает тип переменной
i = type(x)
объект Scilab'а.
целое число.
type(x)
возвращает целое число, которое равно типу x
:
int8
), 2 (int16
) ,
4 (int32
) или 8 (int64
) байтах.foo(a,,b)
:
внутри функции отсутствующий аргумент определён, но он нулевого типа. Определение
L=list(%pi,,%i,,,%z)
создаёт L(2)
типа 0, и т.д.
Для этих объектов isdef()
возвращает %T
, но
их нулевой тип может быть проверен с помощью type()
.Некоторые данные могут быть сохранены в настраиваемых контейнерах, определённых как
типовые списки типа 16 (tlist) или 17 (матрично-ориентированный типизированный список
mlist). Это также и случай для встроенных типов, как например (рациональные числа),
(структуры), пространство состояний
state-space, интерактивные деревья
(uitree), и т.д., для которых
type(..)
вернёт 16 или 17. Нужно использовать typeof
для получения более детальной информации об их действительном (под)типе.
Преобразование типов в смешанных операциях:
Когда бинарный оператор (например, умножение) или n-арный итерационный оператор (например, конкатенация) применяется межжду двумя операндами различных, но совместных типов, обычно тип одного из двух неявно конвертируется, а другой операнд устанавливает тип результата к своему собственному типу.
Примеры с конкатенацией :
[%t, 3.124]
, [int8(5), 3.124]
, и т.д.
Для конкатенации, сложения, вычитания, умножения, деления и возведения в степень иерархия между типами операндов следующая (читай "A < B": B устанавливает свой тип для A) :
![]() | (десятичное число, комплекснозначное число) < кодированное целое. |
// Выберите строки, щелкните их правой кнопкой мыши и выберите «Execute ..», чтобы запустить их L = list(%pi,,"abc"); type(L(2)) // неопределённый компонент списка type(42) // десятичные числа type(%nan) type(%inf) type(1+%i) // комплекснные числа s = sparse([1,2;4,5;3,10],[1,2,3]); type(s) // разрежённые десятичные или комплексные числа type(%t) // логические значения type(s>2) // разрежённые логические значения g = int8([1 -120 127 312]); // кодированные целые числа type(g) type(1.23 * int8(4)) type(1-%z+%z^2) // полиномиальные значения type(gdf()) // указатели на графические окна type("foo") // текстовые значения deff('[x] = mymacro(y,z)',['a=3*y+1'; 'x=a*z+y']); type(mymacro) // функции Scilab type(disp) // Встроенные фукнции l = list(1,["a" "b"]); // простые списки type(l) e = tlist(["listtype","field1","field2"], [], []); type(e) // типизированный список h = mlist(['V','name','value'],['a','b';'c' 'd'],[1 2; 3 4]); type(h) // типизированный матрично-ориентированный список clear s, s.r = %pi // структуры type(s) c = {%t %pi %i %z "abc" s} // cell-массивы type(c) r = [%z/(1-%z) (1-%z)/%z^2] type(r) // рациональные дроби | ![]() | ![]() |
Version | Description |
6.0 | Тип 11 был удалён. Он использовался для некомпилировнных Scilab-функций. |