typeof tipo do objeto

## Seqüência de Chamamento

                t = typeof(object)
                oc = typeof(object, "overload")

## Parâmetros

object

  objeto Scilab

t

  a string (may have spaces): the name of the type of `object`

oc

  a string (without spaces): the name of the overloading code for the `object`.

## Descrição

`t = typeof(object)` retorna um dos seguintes strings:

string | `object` é uma matriz ou hipermatriz de caracteres e/o textos.
boolean | `object` é uma matriz ou hipermatriz de valores booleanos.
int8 ou int16 ou int32 ou int64 ou uint8 ou uint16 ou uint32 ou uint64
| `object` is a matrix or hypermatrix of [unsigned] integers stored on 8, 16, 32 or 64 bits. (see inttype)
constant | `object` é uma matriz ou hipermatriz de números reais ou complexos
polynomial | `object` é uma matriz ou hipermatriz de polinômios com coeficientes reais ou complexos.
rational | `object` é uma matriz ou hipermatriz de razões de polinômios (matriz de transferência), com coeficientes reais ou complexos.
handle | `object` is a graphics handle. The subtype of graphics handles (Figure, Axes, Polyline, Compound, etc) is available in their `.type` property. See examples below.
list | `object` é uma lista.
st | `object` é uma estrutura ou um nD-array de estruturas.
ce | `object` é uma célula ou um nD-array de células.
boolean sparse | `object` é uma matriz de valores booleanos esparsa. Sparse boolean hypermatrices are not supported.
sparse | `object` é uma matriz esparsa de números reais ou complexos. Sparse numerical hypermatrices are not supported.
fptr | `object` is a built-in Scilab function, called also gateway (C, C++ or Fortran code), a.k.a. a primitive.
function | `object` is a function (Scilab code). See also deff.
library | `object` is a library of functions in Scilab language.
pointer | `object` é um ponteiro (ver lufact).
implicitlist | `object` é um polinômio de tamanho implícito para indexação. Ver n:$ e : (colon)
listdelete | is returned by `typeof(`null()`)` . See null().
void | is the typeof undefined elements in lists.
Typed T-Lists or M-Lists:
Note that if the `object` is a tlist or a mlist, `typeof` will return the corresponding customized type stored in as a string in the first list entry.
Reserved T-List or M-List types predefined in Scilab:
dir | `object` is the result of a dir() instruction, with fields `name`, `date`, `bytes`, and `isdir`.
state-space | `object` is a state-space model (see syslin).
program | `object` is a list describing the internal code of a function (see macr2tree).
cblock | `object` is a block of columns of same heights but of different data types, as returned by mfscanf.
XMLDoc | `object` is an XML Document created with xmlRead, xmlReadStr, htmlRead, or htmlReadStr. Additional XML typeof are defined.
H5Object | `object` is the id of an HDF5 file opened with h5open. Additional HDF5 typeof are defined: See HDF5 Objects.
uitree | `object` is a tree, a branch or a leaf as created with a uitree feature. See for instance uiCreateNode.
Reserved T-list types used in Xcos :
Block | `object` is a Xcos block.
cpr | `object` is a tlist containing the compilation results of a Xcos diagram.
diagram | `object` is a tlist defining a Xcos diagram: initial parameters, set of blocks, of links between blocks, and of Text labels belonging to the diagram.
graphics | `object` is a tlist assigned to the `.graphics` field of a block.
Link | `object` is a tlist defining and configuring a link between 2 blocks.
model | `object` is a tlist assigned to the `.model` field of a block.
params | `object` is a tlist containing some configuration parameters of a Xcos diagram.
scsopt | `object` is a tlist containing the graphical options of the Xcos diagram editor.
scs | `object` is a tlist containing static results of the compilation of a Xcos diagram.
xcs | `object` is a tlist containing dynamical results during a Xcos simulation.
Text | `object` is a tlist defining a text label in a Xcos diagram.

## Exemplos

    // Characters and texts
    t = ["a" "Hello"   "à é è ï ô û ñ"
         "1" "Bonjour" "указывает тип объекта"
         ";" "Chao"    "オブジェクトの型"
        ]
    typeof(t)

    // Booleans
    typeof(%t)
    typeof("abc"=="def")
    hm = grand(2,2,2,"uin",0,9)<5
    typeof(hm)

    // Encoded integers
    [ typeof(uint8(%pi))  typeof(int8(-%pi))
      typeof(uint16(%pi)) typeof(int16(-%pi))
      typeof(uint32(%pi)) typeof(int32(-%pi))
      typeof(uint64(%pi)) typeof(int64(-%pi))
    ]

    // Decimal numbers
    n = 1:0.3:2
    typeof(n)
    hm = grand(2,2,2,"uin",0,9)
    typeof(hm)

    // Decimal integers
    n = 1:7
    typeof(n)

    // Complex numbers
    n = [%i 1-%i %pi - 3*%i]
    typeof(n)

    // Special "constant"
    typeof([])   // empty matrix

    // Polynomials
    n = [ %z (1-%z)^2]
    typeof(n)
    n = [ 3*%i + %z (1-%i*%z)^2]
    typeof(n)

    // Rational fractions
    r = [%s/(1-%s) (1+%s)^2/(1-%s)]   // with real coefficients
    typeof(r)
    r = [%s/(%i-%s) (%i+%s)^2/(1-%s)] // with complex coefficients
    typeof(r)

    // Sparse matrices
    // ---------------
    w = sprand(100,100,0.001)
    typeof(w)     // sparse
    typeof(w==w)  // boolean sparse

    // Functions and libraries
    // -----------------------
    deff('y=f(x)','y=2*x');  // Function in Scilab language
    f(%pi)
    typeof(f)
    typeof(cosd)  // written in Scilab

    typeof(corelib) // Library of functions in Scilab language

    typeof(sin)     // Built-in function (non-editable)
    mysin = sin;
    mysin(%pi/2)

    // Graphical handles
    // -----------------
    clf
    plot2d()
    typeof(gcf())
    // The subtype of the handle is in the "type" property:
    gcf().type
    gca().type
    gce().type

    close(gcf())

    // Containers
    // ----------
    // Simple list
    L = list(%pi, %t, %z, %s/(1-%s), "Bonjour", sin, cosd, list("list_in_list", 432));
    typeof(L)

    // Cells array
    C = {%pi, %t, %z ; %s/(1-%s), "Bonjour", list("list_in_list", 432) }
    typeof(C)

    // (Array of) Structure
    S.num = %pi;
    S.b = %t;
    S(2).t = "Bonjour"
    typeof(S)

    // Special generic indexing expressions
    // ------------------------------------
    typeof($)
    typeof(:)    // "eye()" equivalent (all elements)
    typeof(3:$)

    // Typeof for deletion or undefined elements:
    // -----------------------------------------
    typeof([])      // empty matrix
    typeof(null())
    L = list(%pi, ,"hey!")
    typeof(L(2))   // undefined element

    // Customized typeof of T-Lists:
    // ----------------------------
    L = tlist(['myLongTypeOf','a','b'], 18, 'Scilab');
    typeof(L)

    // Reserved T-List typeof
    // ----------------------
    typeof(dir())        // Files directory
    //
    c = macr2tree(sind); // Internal code of a Scilab macro
    typeof(c)
    fieldnames(c)'
    c.name
    //
    doc = xmlReadStr("<root><a att=""foo"">Hello</a></root>");
    typeof(doc)
    xmlDelete(doc)
    //
    x = 1;
    save(TMPDIR + "/x.sod", "x"); // SOD files are HDF5 ones
    a = h5open(TMPDIR + "/x.sod");
    typeof(a)
    h5close(a)

## Ver Também

- type
- inttype
- overloading
- isreal
- strings
- poly
- rlist
- null
- sparse
- issparse
- syslin
- dir
- XML Objects
- HDF5 Objects

## Histórico

6.0

- "overload" keyword added.
- typeof "uint64" and "int64" added.
- typeof "hypermat" removed. Hypermatrices of any homogeneous type are now natively supported.
- typeof "listdelete" added (as returned by null()).
- typeof() can now be used for any undefined element of a list. It then returns the new "void" typeof.
- The typeof of T-lists and M-lists were limited to 8 characters. They may be longer now.
- typeof "size implicit" renamed "implicitlist" (`1:$`)
- Help page reviewed.