aTail/aHead

Atalhos pra ultimo (Tail) e primeiro (Head) elemento de array. Mais legivel que aArr[Len(aArr)] e aArr[1].

Assinatura: aTail(aArr) -> xUltimo // aHead(aArr) -> xPrimeiro

Retorna: Any (tipo do elemento)

Atalhos sintaticos pra acessar o primeiro e ultimo elementos de array sem indices verbosos. aTail(aArr) e mais legivel que aArr[Len(aArr)].

Sintaxe

aTail(aArr)    --> ultimo elemento
aHead(aArr)    --> primeiro elemento

Exemplos

aArr := {"A", "B", "C", "D"}
aHead(aArr)              // "A"
aTail(aArr)              // "D"

aNum := {10, 20, 30}
aTail(aNum)              // 30

aVazio := {}
aTail(aVazio)            // NIL (array vazio)

Casos praticos

1. Ultimo registro processado

aLog := {}
// ... loop que aAdd em aLog
ConOut("Ultimo evento: " + aTail(aLog))

2. Cabecalho do CSV (primeira linha)

aLinhas := Separa(MemoRead("arq.csv"), Chr(10))
cHeader := aHead(aLinhas)                 // primeira linha
aDados  := aSize(aClone(aLinhas), Len(aLinhas) - 1)  // resto
// Hmm — esse jeito remove ultimo. Pra remover primeiro:
aDel(aLinhas, 1)
aSize(aLinhas, Len(aLinhas) - 1)

3. Ultima OP de um produto

Static Function UltOP(cProd)
    Local aOPs := U_GetOPsDoProduto(cProd)
    // aOPs ordenado por data
    If Len(aOPs) > 0
        Return aTail(aOPs)
    EndIf
Return NIL

Pegadinhas

Veja também