PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → 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
Started by msg, Sep., 17 2020 5:26 PM - 11 replies
Posted on September, 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
Registered member
3,846 messages
Popularité : +227 (347 votes)
Posted on September, 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
Registered member
1,143 messages
Popularité : +50 (142 votes)
Posted on September, 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
Posted on September, 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()
Registered member
1,143 messages
Popularité : +50 (142 votes)
Posted on September, 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
Registered member
3,846 messages
Popularité : +227 (347 votes)
Posted on September, 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
Registered member
329 messages
Popularité : +28 (32 votes)
Posted on September, 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 -
Registered member
3,846 messages
Popularité : +227 (347 votes)
Posted on September, 20 2020 - 11:26 AM
Connais-tu un langage qui le fait ?

--
Il y a peut être plus simple, mais, ça tourne
Registered member
3,846 messages
Popularité : +227 (347 votes)
Posted on September, 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
Registered member
190 messages
Popularité : +21 (23 votes)
Posted on September, 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
Posted on September, 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#).
Posted on September, 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 ?