Rob Gaddi <rgaddi@highlandtechnology.invalid>: > On 04/13/2017 08:26 AM, Marko Rauhamaa wrote: >> I have occasionally felt the urge to try "goto" in my C code, but having >> written it, I have taken it out. It just doesn't make the code look more >> elegant or robust. Unlike "break" or "return," "goto" makes me uneasy >> about variable scope and lifetime. > [...] > You see it all the time in kernel code or when doing I/O. A pretty > common pattern is: > > int return_val = 1; > if (init_thing(x)) goto bk1; > if (init_thing(y)) goto bk2; > if (init_thing(z)) goto bk3; > > do_things_with(x, y, z); > return_val = 0; > > bk3: cleanup_thing(z); > bk2: cleanup_thing(y); > bk1: cleanup_thing(x); > return return_val;
I know, but I still don't like it. Marko -- https://mail.python.org/mailman/listinfo/python-list