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