Re: [Vala] request to add another example to Projects/Vala/ListExample



Hello,

this is a pretty old topic, but I have the rights to edit wgo pages. If you
think it is actually relevant, I can add this example to the wiki.

Best,
Gergely



Gergely Polonkai
[image: https://]about.me/gergely.polonkai
<https://about.me/gergely.polonkai?promo=email_sig&utm_source=email_sig&utm_medium=email_sig&utm_campaign=external_links>

2016-03-21 15:21 GMT+01:00 Gilzad Hamuni <gilli4 gmx net>:

Hi,

just want to say that this is some precious info that I needed to learn
yet.

As a C#-guy I wonder from a "user's" point of view:
If List<string> implies strdup(), wouldn't it be consistent to
automatically compare with strcmp() upon removing, too?

Or am I making dangerous assumptions that are not so smart in the end? I
might be spoiled by too much comfort.

gilzad


Gesendet: Freitag, 18. März 2016 um 22:33 Uhr
Von: MohanR
HI,
I screwed-up that comment. sorry for that. I tried to upload a new
version of that page, but wiki says I'm not allowed. Please help to
update that page.
int main(string[] args) {
    List<string> list0 = new List<string>();
    List<unowned string> list1 = new List<unowned string>();
    list0.append("helloworld"); /* g_strdup() takes place */
    list1.append("helloworld"); /* no g_strdup() */
    stdout.printf("list0.length=%u, list1.length=%u\n",
                  list0.length(), /* length=1 */
                  list1.length()); /* length=1 */
    list0.remove("helloworld"); /* wont work as expected */
    list1.remove("helloworld"); /* works as expected */
    stdout.printf("list0.length=%u, list1.length=%u\n",
                  list0.length(), /* still length=1 */
                  list1.length()); /* length=0 */
    list0.delete_link(list0.find_custom("helloworld", strcmp));
    stdout.printf("list0.length=%u, list1.length=%u\n",
                  list0.length(), /* length=0 */
                  list1.length()); /* length=0 */
    return 0;
}
Thanks,
Mohan R
On Fri, 2016-03-18 at 20:37 +0100, Luca Bruno wrote:
Hi,
thanks a lot for your contribution. The wiki is open, you can
register and edit it freely! :)

Also pay attention to the comment about "how" and "how". In C, they
are equivalent because those are const strings and have the same
address. But with List<string> they get copied. However with
List<unowned string> they would be equal. It would be better if you
could reword that comment about pointing to the ownership of the List
elements

On Fri, Mar 18, 2016 at 8:26 PM, MohanR <mohan43u gmail com> wrote:
Hi,

I'm a beginner in vala. I would like to add the following example
to
this wiki link to make other beginners understand important thing
about
List<string>.

https://wiki.gnome.org/Projects/Vala/ListSample

int main(string[] args) {
    List<string> mylist = new List<string>();
    mylist.append("hi");
    mylist.append("how");
    mylist.append("are");
    mylist.append("you");

    /* prints length: 4 */
    stdout.printf("length: %u\n", mylist.length());

    /* following wont work as expected because in
     * C universe, "how" and "how" is not equal
     */
    mylist.remove("how");

    /* still prints length: 4 */
    stdout.printf("length: %u\n", mylist.length());

    /* works because "how" and "how" is equal
     * according to strcmp()
     */
    mylist.remove_link(mylist.find_custom("how", strcmp));

    /* prints length: 3 */
    stdout.printf("length: %u\n", mylist.length());

    return 0;
}
_______________________________________________
vala-list mailing list
vala-list gnome org
https://mail.gnome.org/mailman/listinfo/vala-list



--
NixOS Linux
_______________________________________________
vala-list mailing list
vala-list gnome org
https://mail.gnome.org/mailman/listinfo/vala-list

_______________________________________________
vala-list mailing list
vala-list gnome org
https://mail.gnome.org/mailman/listinfo/vala-list



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]