PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Manière idiomatique d’obtenir le dernier élément d’un tableau
Manière idiomatique d’obtenir le dernier élément d’un tableau
Iniciado por msg, set., 17 2020 5:26 PM - 11 respostas
Publicado em setembro, 17 2020 - 5:26 PM
Bonjour,

Découvrant Windew et le Wlangage, je cherche à connaître la manière idiomatique de récupérer le dernier élément d’un tableau.

Ceci fonctionne:

exemple[exemple.Occurrence()]

Mai pour une fonction aussi basique, peut-être existe-il quelque chose de plus laconique ? « exemple[-1] » ou « exemple.dernier » ne semblent pas être des options fonctionnels. Existe-t-il autre chose ?

Par avance merci
Membro registado
3.845 mensagems
Popularité : +227 (347 votes)
Publicado em setembro, 17 2020 - 5:47 PM
Bonjour,
Si tu parles d'une variable Tableau :
[code]
tabMonTableau[tabMonTableau.Occurence()]
[

--
Il y a peut être plus simple, mais, ça tourne
Membro registado
1.143 mensagems
Popularité : +50 (142 votes)
Publicado em setembro, 17 2020 - 10:27 PM
Bonsoir,

tabMonTableau[tabMonTableau..Occurrence]


--
Thierry TILLIER
Développeur Windev-Webdev
Formation Windev : https://coursdinfo.teachable.com/
Formation bureautique : https://coursdinfo.net
Publicado em setembro, 18 2020 - 10:06 AM
Bonjour, merci Voroltinquo et Thierry pour vos réponses.

Oui, c’est bien un tableau auquel je fais référence.

Donc ceci donne bien le résultat attendu :
tabMonTableau[tabMonTableau.Occurence()]


Par contre, je suis un peu étonné de la verbosité d’une fonctionnalité aussi courante pour les algorithmes.

À défaut d’une fonctionnalité de base, est-il possible d’étendre les méthodes de la structure des tableaux, pour obtenir la possibilité d’écrire quelque chose comme :

tabMonTableau.dernier()
Membro registado
1.143 mensagems
Popularité : +50 (142 votes)
Publicado em setembro, 20 2020 - 12:24 AM
Occurrence signifie nombre d'éléments, il est donc bien adapté pour désigner à la fois le dernier indice et le nombre d'éléments.

--
Thierry TILLIER
Développeur Windev-Webdev
Formation Windev : https://coursdinfo.teachable.com/
Formation bureautique : https://coursdinfo.net
Membro registado
3.845 mensagems
Popularité : +227 (347 votes)
Publicado em setembro, 20 2020 - 10:24 AM
msg a écrit :
Par contre, je suis un peu étonné de la verbosité d’une fonctionnalité aussi courante pour les algorithmes.

Dans un algorithme, la plupart du temps, le dernier indice est traité comme un autre, c'est ce qui se passe après sont traitement qui diffère.
Par ailleurs, on n'a qu'une fonction, quel que soit le type de variable. C'est quand même plus simple que :
MonTableau[(siszeof(MonTableau)/sizeof(*MonTableau))-1]

.... et encore, cela ne te donne que l'indice max

--
Il y a peut être plus simple, mais, ça tourne
Membro registado
329 mensagems
Popularité : +28 (32 votes)
Publicado em setembro, 20 2020 - 11:14 AM
N’empêche que parcourir l’index courant d’un tableau avec des .premier .suivant .précédent et .dernier me semblerai plus pratique, je suis même surpris que PCSOFT, ne l’ai jamais implémenté !

--
———————————————————————————————————
Ce qui se conçoit bien se code clairement et se débogue facilement...

- Pastiche d’une citation de Nicolas Boileau -
Membro registado
3.845 mensagems
Popularité : +227 (347 votes)
Publicado em setembro, 20 2020 - 11:26 AM
Connais-tu un langage qui le fait ?

--
Il y a peut être plus simple, mais, ça tourne
Membro registado
3.845 mensagems
Popularité : +227 (347 votes)
Publicado em setembro, 20 2020 - 11:31 AM
Après rien ne t’empêche de créer une classe qui le fait ....

--
Il y a peut être plus simple, mais, ça tourne
Membro registado
190 mensagems
Popularité : +21 (23 votes)
Publicado em setembro, 20 2020 - 8:24 PM
Bonjour

oui une syntaxe comme en python ce serait pas mal:
a[-1] renvoie le dernier élément du tableau a
a[-2] l'avant dernier

bien pratique à l'usage
Publicado em setembro, 22 2020 - 10:47 AM
// C#
[1, 2, 3].Last()

// Julia
last([1, 2, 3])

// Ruby
[1, 2, 3].last


Liste non exhaustive,évidemment. La plupart des langages populaires offrent un équivalent, parfois via une fonction/méthode d’un nom un peu différent (end, slice, tail…), potentiellement à instruire d’un paramètre idoine (1, -1…). Parfois ces mécanismes ne sont pas accessibles sur des tableau statiques (d’ailleurs je n’ai pas vérifié pour C#).
Publicado em setembro, 22 2020 - 10:52 AM
Je n’ai pas encore vu la manière de structurer les classes en Wlangage. Est-ce que la classe tableau (si cette structure est implémenté comme une classe) peut être étendu en y rajoutant une méthode "dernier" ? Si oui, comment ? Si non, est-ce qu’une classe peut être dérivé de la structure "tableau" en héritant de toutes ses propriétés et en y ajoutant cette méthode, et dans ce cas comment s’y prendre ?