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 <[email protected]> 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
> > > [email protected]
> > > https://mail.gnome.org/mailman/listinfo/vala-list
> > > 
> > 
> > 
> > -- 
> > NixOS Linux
> _______________________________________________
> vala-list mailing list
> [email protected]
> https://mail.gnome.org/mailman/listinfo/vala-list
>
_______________________________________________
vala-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to