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
- Array vazio retorna NIL — sempre teste antes.
- Sem efeito colateral — nao remove o elemento. Pra "pop", combine com aDel+aSize.