Los metodos que aquí se expresan son:
.add .insert y remove_at cuyo funcionamiento es sencillo.
Se puede asignar un valor a una posición como lista[2]="10"
o imprimir un valor de la lista.
Para recorrer la lista podemos hacer un foreach de vala. For i in lista. Que quiere decir que metá de uno en uno todos los valores de la lista en i.
$ valac --pkg gee-1.0 listas.gs
Hasta otra.
[indent=4] i:string init var lista = new list of string lista.add ("1"); lista.add ("2"); lista.add ("5"); lista.add ("4"); lista.insert (2, "3"); lista.remove_at (3) for i in lista print i lista[2] = "10" stdout.printf ("%s\n", lista[2])
buen dia, ya he probado compilar para las listas pero no lo consigo estoy en opensuse ya instale la libreria libgee-devel pero no reconoce la libreria asi como esta aqui ¿podrias ayudarme en eso?
ResponderEliminarTengo instalado: libgee0.8-dev libgee-0.8-2 gir-1.2-gee-0.8.
EliminarLa verdad es que ya no uso la versión 1.0 de libgee esta mas avanzada la 0.8. Intentalo con estos paquetes o parecidos en tu distribución.
Hola Homar: prueba a usar --pkg gee 0.8
Eliminarno me ha funcionado amigo la libreria gir no la encuentro siempre me sale el mismo error
ResponderEliminarerror: Package `libgee-0.8' not found in specified Vala API directories or GObject-Introspection GIR directories
Compilation failed: 1 error(s), 0 warning(s)
este lenguaje me parece interesante pero si que me la esta poniendo dificil.
Podrías escribirme cual es el comando de compilación que usas?
EliminarUn saludo.
bueno amigo disculpa la tardanza estaba algo ocupado pero primero aqui puedes ver lo que tengo instalado de las librerias
EliminarE | Nombre | Resumen | Tipo
--+----------------+--------------------------------------------------+---------
i | libgee-0_8-2 | GObject-based library providing commonly used -> | paquete
i | libgee-devel | GObject-based library providing useful data st-> | paquete
| libgee06-devel | GObject-based library providing useful data st-> | paquete
| libgee2 | GObject-based library providing commonly used -> | paquete
cuando hago la compilacion como dijiste
valac --pkg gee 0.8 listas2.gs
error: Package `gee' not found in specified Vala API directories or GObject-Introspection GIR directories
Compilation failed: 1 error(s), 0 warning(s)
valac --pkg libgee-0_8-2 listas2.gs // con el mismo error
valac --pkg libgee-devel listas2.gs
esos serian de los que he probado ya no se cual usar.
como que no se ve muy claro pero ya no pude editar el comentario para dejar espacio pero tengo instalado la libgee-0_8-2 y la libgee-devel
EliminarPor ahora lo que puedo ver es que te falta un guión. Es decir "valac --pkg gee-0.8 listas2.gs"
ResponderEliminarPor otro lado no se si será necesario el paquete gir-1.2-gee-0.8. No lo puedes instalar?
No se si te valdrán los de esta página....
http://rpmfind.net/linux/rpm2html/search.php?query=typelib%28Gee%29
probé este ejemplo que tienes aqui y lo hice y me dio varias advertencias pero si funcionó no instalé el gir porque en el link que me diste no se cual será hay un monton y no hay algo que se parezca al gir realmente no sé cual usar asi que solo lo probé
ResponderEliminary medio esto
/home/h/Documents/listas2.vala.c: In function ‘_vala_main’:
/home/h/Documents/listas2.vala.c:72:3: warning: passing argument 1 of ‘gee_abstract_collection_get_size’ from incompatible pointer type [enabled by default]
_tmp12_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp11_);
^
In file included from /home/h/Documents/listas2.vala.c:9:0:
/usr/include/gee-0.8/gee.h:1431:6: note: expected ‘struct GeeAbstractCollection *’ but argument is of type ‘struct GeeCollection *’
gint gee_abstract_collection_get_size (GeeAbstractCollection* self);
^
/home/h/Documents/listas2.vala.c: In function ‘main’:
/home/h/Documents/listas2.vala.c:115:2: warning: ‘g_type_init’ is deprecated (declared at /usr/include/glib-2.0/gobject/gtype.h:669) [-Wdeprecated-declarations]
g_type_init ();
Todo correcto Homar!!
ResponderEliminaren vez de usar "for i in lista" usa "for var i=0 to (lista.size-1) do print lista[i]" puesto que este tipo de "for" esta preparado para los arrays y no para las listas de Gee. Ya puedes programar en Genie.
:->
Ten en cuenta que no hace falta usar [indent=4] y luego los correspondientes espacios. Sino que puedes usar el tabulador sin introducir [indent=4].ok?
Ahora si me quitó casi todas las advertencias gracias por todo amigo.
ResponderEliminar