FwArrayOf

Array tipado em TLPP. Garante que todos os elementos sao do tipo declarado. Substitui arrays genericos sem type-safety do AdvPL.

Assinatura: FwArrayOf(cTipo):new() -> oArr

Retorna: object

Em AdvPL classico, array e generico — pode misturar string, numero, sub-array, NIL. Em TLPP, FwArrayOf cria um array tipado: tentativa de adicionar tipo errado lanca exception em compile time (se possivel) ou runtime.

Sintaxe

local aNumeros as object
aNumeros := FwArrayOf('numeric'):new()

aNumeros:add(10)
aNumeros:add(20)
aNumeros:add(30)
// aNumeros:add('texto')  // ERRO em runtime — tipo incompativel

conout(aNumeros:size())   // 3
conout(aNumeros:get(1))   // 10

Tipos suportados

Array de objetos custom

class Cliente
    public data id   as character
    public data nome as character
endclass

local aClientes as object
aClientes := FwArrayOf('Cliente'):new()

local oCliente as object
oCliente := Cliente():new()
oCliente:id   := '001'
oCliente:nome := 'Mayco'

aClientes:add(oCliente)

// Iterar
local i as numeric
for i := 1 to aClientes:size()
    conout(aClientes:get(i):nome)
next i

Vantagens

Pegadinhas

Parâmetros

NomeTipoObrigatórioDescrição
cTipoCharactersimTipo dos elementos (character, numeric, logical, date, array, object, ou nome de classe)

Exemplos

Array tipado

aIds := FwArrayOf('numeric'):new()
aIds:add(10)

Veja também