[Gambas-bugtracker] Bug #2429: In Collection allow objects with property key to be the key in the collections

bugtracker at gambaswiki.org bugtracker at gambaswiki.org
Mon Dec 27 16:39:23 CET 2021


http://gambaswiki.org/bugtracker/edit?object=BUG.2429&from=L21haW4-

Brian G reported a new bug.

Summary
-------

In Collection allow objects with property key to be the key in the collections

Type             : Request
Priority         : Medium
Gambas version   : Unknown
Product          : Unknown


Description
-----------

Would it be possible to expand the collection class to allow something other than text to be the keys used.

Perhaps objects the have a property _key or maybe even the object value either of these auto converted to a hash

Allowing collections to be more of a dictionary

such that
class myclass
  $key as string = "dd"         ' of course this could be generated
  property read _key as string use $key
end class

c = myclass

d as collection = [c:[1,2,3], .....              it looks at the object _key to generate the hash
or
d as collection = [1:1, 2:2 .....                convert the integer to hash .  It already seems to do it in the reference d[1]
or
d as collection = [[1,2]:"message", ......       use the values of the pair to generate the hash then ref d[[1,2]] or dim a as integer[] = [1,2] -> d[a]

Maybe I don't see if Gambas does this, but it would make very simple many collection uses that require a lot of extra code.


System information
------------------

[System]
Gambas=3.16.90 4dd2518bb (master)
OperatingSystem=Linux
Kernel=5.13.0-22-generic
Architecture=x86_64
Distribution=Linux Mint 20.2 Uma
Desktop=MATE
Font=Ubuntu,10
Scale=7
Theme=mint-y
Language=en_US.UTF-8
Memory=13939M

[Libraries]
Cairo=libcairo.so.2.11600.0
Curl=libcurl.so.4.6.0
DBus=libdbus-1.so.3.19.11
GDK2=libgdk-x11-2.0.so.0.2400.32
GDK3=libgdk-3.so.0.2404.16
GStreamer=libgstreamer-1.0.so.0.1602.0
GTK+2=libgtk-x11-2.0.so.0.2400.32
GTK+3=libgtk-3.so.0.2404.16
OpenGL=libGL.so.1.7.0
Poppler=libpoppler.so.97.0.0
QT5=libQt5Core.so.5.12.8
SDL=libSDL-1.2.so.0.11.4
SQLite=libsqlite3.so.0.8.6

[Environment]
CLUTTER_BACKEND=x11
CLUTTER_IM_MODULE=ibus
COMPIZ_CONFIG_PROFILE=mint
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
DESKTOP_SESSION=mate
DISPLAY=:0
EDITOR=/usr/bin/nano
GB_GUI=gb.gtk3
GDMSESSION=mate
GDM_LANG=en_US
GIO_LAUNCHED_DESKTOP_FILE_PID=1944271
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
GTK3_MODULES=xapp-gtk3-module
GTK_IM_MODULE=ibus
GTK_MODULES=gail:atk-bridge
GTK_OVERLAY_SCROLLING=0
HOME=<home>
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_ALL=en_US.UTF-8
LIBVIRT_DEFAULT_URI=qemu:///system
LOGNAME=<user>
MATE_DESKTOP_SESSION_ID=this-is-deprecated
PATH=<home>/.local/bin:<home>/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
PWD=<home>
QT4_IM_MODULE=ibus
QT_ACCESSIBILITY=1
QT_AUTO_SCREEN_SCALE_FACTOR=0
QT_IM_MODULE=ibus
QT_LOGGING_RULES=*.debug=false
QT_QPA_PLATFORMTHEME=qt5ct
QT_SCALE_FACTOR=1
SESSION_MANAGER=local/<hostname>:@/tmp/.ICE-unix/1857680,unix/<hostname>:/tmp/.ICE-unix/1857680
SHELL=/usr/bin/gsh
SHLVL=0
SSH_AGENT_PID=1857765
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
TERM=xterm
TZ=:/etc/localtime
USER=<user>
XAUTHORITY=<home>/.Xauthority
XDG_CONFIG_DIRS=/etc/xdg/xdg-mate:/etc/xdg
XDG_CURRENT_DESKTOP=MATE
XDG_DATA_DIRS=/usr/share/mate:<home>/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/<user>
XDG_RUNTIME_DIR=/run/user/1000
XDG_SEAT=seat0
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_SESSION_CLASS=user
XDG_SESSION_DESKTOP=mate
XDG_SESSION_ID=c2
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
XDG_SESSION_TYPE=x11
XDG_VTNR=7
XMODIFIERS=@im=ibus




More information about the Bugtracker mailing list