рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдпрд╛ "рдЧреЛ" рдСрдкрд░реЗрдЯрд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рддрд░реНрдХ рдХреА рд╕рдВрд░рдЪрдирд╛ рдкрд░


рд╕рдорд╛рдирд╛рдВрддрд░ (рдкреНрд░рддрд┐рдпреЛрдЧреА, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ) рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рддреНрдпреЗрдХ рднрд╛рд╖рд╛ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣рд╛рдВ рд╡рд┐рднрд┐рдиреНрди рдПрдкреАрдЖрдИ рдХреЗ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ:


go myfunc(); // Golang pthread_create(&thread_id, NULL, &myfunc); /* C with POSIX threads */ spawn(modulename, myfuncname, []) % Erlang threading.Thread(target=myfunc).start() # Python with threads asyncio.create_task(myfunc()) # Python with asyncio 

рдЕрдВрдХрди рдФрд░ рд╢рдмреНрджрд╛рд╡рд▓реА рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рд╢рдмреНрджрд╛рд░реНрде рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ myfunc рдХреЛ рдЪрд▓рд╛рдиреЗ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдореВрд▓ рд╕реВрддреНрд░ рдХреЛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рд╣реИ (Engред "рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣")


рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдХреЙрд▓рдмреИрдХ рд╣реИ :


 QObject::connect(&emitter, SIGNAL(event()), // C++ with Qt &receiver, SLOT(myfunc())) g_signal_connect(emitter, "event", myfunc, NULL) /* C with GObject */ document.getElementById("myid").onclick = myfunc; // Javascript promise.then(myfunc, errorhandler) // Javascript with Promises deferred.addCallback(myfunc) # Python with Twisted future.add_done_callback(myfunc) # Python with asyncio 

рдФрд░ рдлрд┐рд░, рд╕рдВрдХреЗрддрди рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рднреА рдЙрджрд╛рд╣рд░рдг рдЗрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐, рд╡рд░реНрддрдорд╛рди рдХреНрд╖рдг рд╕реЗ рд╢реБрд░реВ рд╣реЛ, рдЕрдЧрд░ рдФрд░ рдЬрдм рдХреЛрдИ рдирд┐рд╢реНрдЪрд┐рдд рдШрдЯрдирд╛ рд╣реЛрддреА рд╣реИ, рддреЛ myfunc рд╢реБрд░реВ myfunc ред рдХреЙрд▓рдмреИрдХ рд╕реЗрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд░рд┐рдЯрд░реНрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдВ рдФрд░ рдХреЙрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдЬрд╛рд░реА рд░рд╣реЗред (рдХрднреА-рдХрднреА рдХреЙрд▓рдмреИрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рдВрдпреЛрдЬрди рдХрд╛рд░реНрдпреЛрдВ рдпрд╛ рдореБрдбрд╝-рд╢реИрд▓реА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдореЗрдВ рд▓рд┐рдкрдЯреЗ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореВрд▓ рд╡рд┐рдЪрд╛рд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрддрд╛ рд╣реИ)


рдФрд░ ... рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдХрд┐рд╕реА рднреА рд▓реЛрдХрдкреНрд░рд┐рдп рд╕рдВрдЧрд╛рдорд┐рддрд┐ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдпреЛрдЬрди рдХреА рднрд╛рд╖рд╛ рд▓реЗрдВ рдФрд░ рдЖрдк рд╢рд╛рдпрдж рдкрд╛рдПрдВрдЧреЗ рдХрд┐ рдпрд╣ рдЗрди рдкреНрд░рддрд┐рдорд╛рдиреЛрдВ (рдХрднреА-рдХрднреА рджреЛрдиреЛрдВ, рдЕрддреБрд▓реНрдп) рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИред


рд▓реЗрдХрд┐рди рдореЗрд░реА рдирдИ рдЕрдЬреАрдм рддрд┐рдХрдбрд╝реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд╣реАрдВред рд╡рд╣ рдЗрди рддрд░реАрдХреЛрдВ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЕрдЧрд░ рд╣рдо рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ myfunc рдФрд░ рдПрдХ рдЕрдиреНрдп anotherfunc рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:


 async with trio.open_nursery() as nursery: nursery.start_soon(myfunc) nursery.start_soon(anotherfunc) 

рдирд░реНрд╕рд░реА - рдирд░реНрд╕рд░реА, рдирд░реНрд╕рд░реА

рдкрд╣рд▓реА рдмрд╛рд░ "рдирд░реНрд╕рд░реА" рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рд╣реБрдЖ, рд▓реЛрдЧ рдЦреЛ рдЧрдП рд╣реИрдВред рдПрдХ рд╕рдВрджрд░реНрдн рдкреНрд░рдмрдВрдзрдХ (рдмреНрд▓реЙрдХ рдХреЗ рд╕рд╛рде) рдХреНрдпреЛрдВ рд╣реИ? рдпрд╣ рдирд░реНрд╕рд░реА рдХреНрдпрд╛ рд╣реИ, рдФрд░ рдХрд╛рд░реНрдп рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рддрдм рд▓реЛрдЧ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдирд░реНрд╕рд░реА рдЕрдиреНрдп рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рддреА рд╣реИ рдФрд░ рдЧреБрд╕реНрд╕рд╛ рдХрд░рддреА рд╣реИред рд╕рдм рдХреБрдЫ рд╡рд┐рдЪрд┐рддреНрд░ рд▓рдЧрддрд╛ рд╣реИ, рд╡рд┐рд╢рд┐рд╖реНрдЯ, рдФрд░ рдмрд╣реБрдд рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХрд╛ рдПрдХ рдореВрд▓ рдЖрджрд┐рдо рд╣реЛрдирд╛ рд╣реИред рдпреЗ рд╕рдм рд╕рдордЭрдиреЗ рд╡рд╛рд▓реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдБ рд╣реИрдВ! рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рд╕рд╣рди рдХрд░реЛред


рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рджрд┐рд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдирд░реНрд╕рд░реА рдПрдХ рд╕рдирдХ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдЖрджрд┐рдо рд╣реИ, рдЬреЛ рдХрд┐ рд▓реВрдк рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдореМрд▓рд┐рдХ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХрд┐рдП рдЧрдП рджреГрд╖реНрдЯрд┐рдХреЛрдг (рдереНрд░реЗрдбреНрд╕ рдФрд░ рдХреЙрд▓рдмреИрдХ рджрд░реНрдЬ рдХрд░рдирд╛) рдХреЛ рддреНрдпрд╛рдЧрдиреЗ рдФрд░ рдирд░реНрд╕рд░реА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


рдмрд╣реБрдд рдмреЛрд▓реНрдб рд▓рдЧрддрд╛ рд╣реИ? рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реБрдЖ рд╣реИ: рдПрдХ рдмрд╛рд░ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП goto рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ goto ред рдЕрдм рдпрд╣ рд╣рдВрд╕реА рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИ:



рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЕрднреА рднреА рддрдерд╛рдХрдерд┐рдд goto , рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рдХреНрд╖рдорддрд╛рдПрдВ рдореВрд▓ goto рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реАрдорд┐рдд рд╣реИрдВред рдФрд░ рдЬреНрдпрд╛рджрд╛рддрд░ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдРрд╕рд╛ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реИред рдЙрд╕рдХрд╛ рдХреНрдпрд╛ рд╣реБрдЖ? рдпрд╣ рдХрд╣рд╛рдиреА рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдХреА рдкреНрд░рд╛рдЪреАрдирддрд╛ рдХреЗ рдХрд╛рд░рдг рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред рдЖрдЗрдП рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рдПрдВ рдХрд┐ goto рдХреНрдпрд╛ goto , рдФрд░ рдлрд┐рд░ рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред


рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛


  • рдЧреЛрдЯреЛ рдХреНрдпрд╛ рд╣реИ?
  • рдХреНрдпрд╛ рдЬрд╛рдирд╛ рд╣реИ?
  • рдХреНрдпрд╛ рд╣реБрдЖ рдЧреЛрдЯреЛ рдХреЛ?
    • рдЧреЛрдЯреЛ рдЕрдореВрд░реНрддрддрд╛ рдХреЛ рдирд╖реНрдЯ рдХрд░ рджреЗрддрд╛ рд╣реИ
    • рдЧреЛрдЯреЛ рдХреЗ рдмрд┐рдирд╛ рдмрд╣рд╛рджреБрд░ рдирдИ рджреБрдирд┐рдпрд╛
    • рдХреЛрдИ рдФрд░ рдЧреЛрдЯреЛ рдирд╣реАрдВ
  • "рдЧреЛ" рдкреНрд░рдХрд╛рд░ рдХреЗ рдЦрддрд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
    • рдЧреЛ рдПрдмреНрд╕рдЯреНрд░реИрдХреНрдЯ рдХреЛ рддреЛрдбрд╝рддреЗ рд╣реИрдВред
    • рдЧреЛ-рдПрдХреНрд╕рдкреНрд░реЗрд╢рдВрд╕ рдЦреБрд▓реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдСрдЯреЛ-рд╕рдлрд╛рдИ рдХреЛ рддреЛрдбрд╝рддреЗ рд╣реИрдВред
    • рдЧреЛ рдПрдХреНтАНрд╕рдкреНрд░реЗрд╢рди рдмреНрд░реЗрдХ рдПрд░рд░ рд╣реИрдВрдбрд▓рд┐рдВрдЧред
    • рдЕрдм рдФрд░ рдирд╣реАрдВ рдЬрд╛рдирд╛
  • рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВ рдирд░реНрд╕рд░реА
    • рдирд░реНрд╕рд░реА рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЕрдореВрд░реНрддрддрд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрддреА рд╣реИред
    • рдирд░реНрд╕рд░реА рдЧрддрд┐рд╢реАрд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИред
    • рдЖрдк рдЕрднреА рднреА рдирд░реНрд╕рд░реА рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
    • рдЖрдк рдирд░реНрд╕рд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдирдП рдкреНрд░рдХрд╛рд░ рдХреА рдкрд╣рдЪрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
    • рд╣рд╛рд▓рд╛рдВрдХрд┐, рдирд░реНрд╕рд░реА рд╣рдореЗрд╢рд╛ рдЕрдВрджрд░ рдХреЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реА рд╣реИрдВред
    • рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рдлрд╛рдИ рдХрд░рддрд╛ рд╣реИред
    • рдмрдЧ рдЙрдард╛рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
    • рдмрд╣рд╛рджреБрд░ рдирдИ рджреБрдирд┐рдпрд╛ рдХреЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛
  • рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдирд░реНрд╕рд░реА
  • рдирд┐рд╖реНрдХрд░реНрд╖
  • рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ
  • рдзрдиреНрдпрд╡рд╛рдж
  • рдлрд╝реБрдЯрдиреЛрдЯ
  • рд▓реЗрдЦрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
  • рд╡рд┐рд╕реНрддрд╛рд░

goto рдХреНрдпрд╛ рд╣реИ?


рдкрд╣рд▓реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдЕрд╕реЗрдВрдмрд▓рд░ , рдпрд╛ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рдЖрджрд┐рдо рд░реВрдк рд╕реЗ рдкреНрд░рдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП 1950 рдХреЗ рджрд╢рдХ рдореЗрдВ, рдЖрдИрдмреАрдПрдо рдХреЗ рдЬреЙрди рдмреИрдХрд╕ рдФрд░ рд░реЗрдорд┐рдВрдЧрдЯрди рд░реИрдВрдб рдХреЗ рдЧреНрд░реЗрд╕ рд╣реЙрдкрд░ рдЬреИрд╕реЗ рд▓реЛрдЧреЛрдВ рдиреЗ рдлреЛрд░рдЯреНрд░рд╛рди рдФрд░ рдлреНрд▓реЛ-рдореИрдЯрд┐рдХ (рдЗрд╕рдХреЗ рдкреНрд░рддреНрдпрдХреНрд╖ рд╡рдВрд╢рдЬ рдХреЛрдмреЛрд▓ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ) рдЬреИрд╕реА рднрд╛рд╖рд╛рдУрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред


рдЙрд╕ рд╕рдордп FLOW-MATIC рдмрд╣реБрдд рдорд╣рддреНрд╡рд╛рдХрд╛рдВрдХреНрд╖реА рдерд╛ред рдЖрдк рдЗрд╕реЗ рдкрд╛рдпрдерди рдХреЗ рдорд╣рд╛рди-рдорд╣рд╛рди-рдорд╣рд╛рди-рдкрд░рджрд╛рджрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХреА рдЧрдИ рдкрд╣рд▓реА рднрд╛рд╖рд╛ рдереА, рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реАред рд╡рд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗ:



рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдзреБрдирд┐рдХ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, if рдмреНрд▓реЙрдХ, рд▓реВрдк рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рд╣реИрдВ if рдХреЛрдИ рд╕рд╢рд░реНрдд рдирд╣реАрдВ рд╣реИ - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдмреНрд▓реЙрдХ рдпрд╛ рдЗрдВрдбреЗрдВрдЯ рдирд╣реАрдВ рд╣реИрдВред рдпрд╣ рд╕рд┐рд░реНрдл рднрд╛рд╡реЛрдВ рдХреА рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╕реВрдЪреА рд╣реИред рдЗрд╕рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рдХрдердиреЛрдВ ( JUMP TO ) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдмрд╣реБрдд рдХрдо рд╣реИ - рдмрд╕ рдРрд╕реЗ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдЕрднреА рддрдХ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ!



рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, FLOW-MATIC рдХреЗ рдкрд╛рд╕ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рд╡рд┐рдХрд▓реНрдк рдереЗред рдЖрдорддреМрд░ рдкрд░ рдкреНрд░рд╡рд╛рд╣ рд╕реБрд╕рдВрдЧрдд рдерд╛ - рдКрдкрд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдиреАрдЪреЗ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рд╡рд┐рд╢реЗрд╖ JUMP TO рд╡реНрдпрдВрдЬрдХ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХрд╣реАрдВ рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ (13) рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдХреВрджрддреА рд╣реИ (2):



рдмрд╕ рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рд╕рдорд╛рдирддрд╛ рдХреЗ рдЖрджрд┐рдо рдХреЗ рд╕рд╛рде рдХреЗ рд░реВрдк рдореЗрдВ, рддреЛ рдХреНрдпрд╛ рдЗрд╕ "рдПрдХ рддрд░рд╣ рд╕реЗ рдХреВрдж" рдСрдкрд░реЗрд╢рди рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдордЭреМрддрд╛ рдирд╣реАрдВ рдерд╛ред рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдореЗрдВ, рдпрд╣ JUMP TO , рд▓реЗрдХрд┐рди goto рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ рд░реВрдЯ рд▓реЗ рд▓рд┐рдпрд╛ рд╣реИ (рдЬреИрд╕реЗ "рд╡рд╣рд╛рдВ рдЬрд╛рдПрдВ"), рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВ рдпрд╣рд╛рдВ рдХрд░рддрд╛ рд╣реВрдВред


рдпрд╣рд╛рдБ рдЗрд╕ рдЫреЛрдЯреЗ рд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ goto рдХреВрдж рдХрд╛ рдкреВрд░рд╛ рд╕реЗрдЯ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:



рдпрд╣ рди рдХреЗрд╡рд▓ рдЖрдкрдХреЛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд▓рдЧрддрд╛ рд╣реИ! рдлреНрд▓реЛ-рдореИрдЯрд┐рдХ рдХреЛ рдпрд╣ рдЬрдВрдкрд┐рдВрдЧ-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╢реИрд▓реА рд╕реАрдзреЗ рдЕрд╕реЗрдВрдмрд▓рд░ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реАред рдпрд╣ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИ, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд╛рд╕ рд╣реИ рдХрд┐ рдХрдВрдкреНрдпреВрдЯрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╕рд╛рде рд╕реАрдзреЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рддреАрд░реЛрдВ рдХреА рдпрд╣ рдЧреЗрдВрдж "рд╕реНрдкреЗрдЧреЗрдЯреА рдХреЛрдб" рд╢рдмреНрдж рдХреЗ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд╛ рдХрд╛рд░рдг рд╣реИред


рд▓реЗрдХрд┐рди goto рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рдХреНрдпреЛрдВ рд╣реБрдИ? рдХреНрдпреЛрдВ рдХреБрдЫ рдирд┐рдпрдВрддреНрд░рдг рдХрдерди рдЕрдЪреНрдЫреЗ рд╣реИрдВ рдФрд░ рдЕрдиреНрдп рдирд╣реАрдВ? рдЕрдЪреНрдЫреЗ рд▓реЛрдЧреЛрдВ рдХрд╛ рдЪрдпрди рдХреИрд╕реЗ рдХрд░реЗрдВ? рдЙрд╕ рд╕рдордп рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рдерд╛, рдФрд░ рдпрджрд┐ рдЖрдк рд╕рдорд╕реНрдпрд╛ рдХреЛ рдирд╣реАрдВ рд╕рдордЭрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред


рдХреНрдпрд╛ go ?


рдЖрдЗрдпреЗ рд╣рдорд╛рд░реА рдХрд╣рд╛рдиреА рд╕реЗ рдкрдЫрддрд╛рддреЗ рд╣реИрдВред рд╣рд░ рдХреЛрдИ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ goto рдЦрд░рд╛рдм рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ? рдЧреЛрд▓рдВрдЧ рдХреЗ рдкреНрд░рд╕рд┐рджреНрдз go рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рджреЗрдЦреЗрдВ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирдП "рдЧреЛрд░реЛрдЗрди" (рд╣рд▓реНрдХреЗ рдкреНрд░рд╡рд╛рд╣) рдХреЛ рдлреИрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:


 // Golang go myfunc(); 

рдХреНрдпрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдЕрдкрдиреЗ рдкреНрд░рд╡рд╛рд╣ рдХрд╛ рдЖрд░реЗрдЦ рдЦреАрдВрдЪрдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдпрд╣ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЖрд░реЗрдЦ рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣рд╛рдВ рдзрд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИред рдЖрдЗрдП рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдмрдирд╛рдПрдВ:



рдпрд╣рд╛рдВ рдХреЗ рд░рдВрдЧ рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВ рдХрд┐ рджреЛрдиреЛрдВ рд░рд╛рд╕реНрддреЗ рдЪреБрдиреЗ рдЧрдП рд╣реИрдВред рдкреЗрд░реЗрдВрдЯ рдЧреЛрд░реЛрдЗрди (рдЧреНрд░реАрди рд▓рд╛рдЗрди) рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ - рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдпрд╣ рдКрдкрд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рддреБрд░рдВрдд рдиреАрдЪреЗ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдмреАрдЪ, рд╡рдВрд╢ рдХрд╛рд░реНрдп (рдмрдХрд╛рдЗрди рд▓рд╛рдЗрди) рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдзрд╛рд░рд╛ рдКрдкрд░ рд╕реЗ рдЖрддреА рд╣реИ рдФрд░ рдлрд┐рд░ myfunc рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдХреВрдж рдЬрд╛рддреА рд╣реИред рдПрдХ рдирд┐рдпрдорд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдПрдХ рддрд░рдлрд╝рд╛ рдХреВрдж рд╣реИ - myfunc рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рд╣рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдП рд╕реНрдЯреИрдХ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд░рдирдЯрд╛рдЗрдо рддреБрд░рдВрдд рднреВрд▓ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХрд╣рд╛рдБ рд╕реЗ рдЖрдП рдереЗред


рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХреЙрд▓ рд╕реНрдЯреИрдХ

рд▓реЗрдХрд┐рди рдпрд╣ рди рдХреЗрд╡рд▓ рдЧреЛрд▓рдВрдЧ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдЖрд░реЗрдЦ рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╕рднреА рдЖрджрд┐рдо (рдирд┐рдпрдВрддреНрд░рдг) рдХреЗ рд▓рд┐рдП рд╕рдЪ рд╣реИ:


  • рдереНрд░реЗрдбрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрдорддреМрд░ рдкрд░ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдирд┐рдпрдВрддреНрд░рдг рд╡рд╕реНрддреБ рд▓реМрдЯрд╛рддреА рд╣реИ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдмрд╛рдж рдореЗрдВ рдереНрд░реЗрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧреА - рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдСрдкрд░реЗрд╢рди рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднрд╛рд╖рд╛ рдЦреБрдж рдХреБрдЫ рдирд╣реАрдВ рдЬрд╛рдирддреА рд╣реИред рдПрдХ рдирдпрд╛ рдзрд╛рдЧрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджрд┐рдо рдореЗрдВ рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдЪрд┐рддреНрд░ рд╣реИред
  • рдХреЙрд▓рдмреИрдХ рдкрдВрдЬреАрдХрд░рдг рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ рдзрд╛рдЧрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрд▓рдЧ рд╣реИ), рдЬреЛ:
    a) рддрдм рддрдХ рдЕрд╡рд░реБрджреНрдз рд╣реЛрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХреЛрдИ рдШрдЯрдирд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдФрд░ рдлрд┐рд░
    b) рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ
    рдЗрд╕рд▓рд┐рдП, рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдирд┐рдпрдВрддреНрд░рдг рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдХреЙрд▓рдмреИрдХ рдкрдВрдЬреАрдХрд░рдг рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИред
  • Futures рд╕рд╛рде рдФрд░ рдПрдХ рд╣реА рдмрд╛рдд рдХрд╛ Promises рдХрд░рддрд╛ рд╣реИ - рдЬрдм рдЖрдк рдлрд╝рдВрдХреНрд╢рди рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ Promise , рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЙрд╕рдиреЗ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рд╣реИ рдФрд░ рдмрд╛рдж рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдВрддреНрд░рдг рд╡рд╕реНрддреБ рд▓реМрдЯрд╛рддрд╛ рд╣реИ (рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ)ред рдкреНрд░рдмрдВрдзрди рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдпрд╣ рдПрдХ рдкреНрд░рд╡рд╛рд╣ рдмрдирд╛рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдХреЙрд▓рдмреИрдХ рдХреЛ рдкреНрд░реЛрдорд┐рд╕ рдФрд░ рдлрд┐рд░ рдкрд┐рдЫрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣ рдПрдХ рд╣реА рдкреИрдЯрд░реНрди рдХрдИ рд░реВрдкреЛрдВ рдореЗрдВ рдЦреБрдж рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ - рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдорд╛рдирддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрди рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИ - рдПрдХ рдЫрд▓рд╛рдВрдЧ рдирдП рдзрд╛рдЧреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдорд╛рддрд╛-рдкрд┐рддрд╛ рдЙрд╕реА рдХреЛ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдиреЗ рдЗрд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдерд╛ред рдХреНрдпрд╛ рджреЗрдЦрдирд╛ рд╣реИ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЗрд╕реЗ рд╣рд░ рдЬрдЧрд╣ рджреЗрдЦреЗрдВрдЧреЗ! рдпрд╣ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЦреЗрд▓ рд╣реИ (рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП)!


рдлрд┐рд░ рднреА, рдпрд╣ рдореБрдЭреЗ рдЧреБрд╕реНрд╕рд╛ рджрд┐рд▓рд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╢реНрд░реЗрдгреА рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдмрдпрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдорд╛рдирдХ рдирд╛рдо рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рдЧреЛ" рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреИрд╕реЗ рдХрд┐ "рдЧреЛрдЯреЛ" рд╕рднреА goto рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрдж рдмрди рдЧрдпрд╛ рд╣реИред рдХреНрдпреЛрдВ go ? рдПрдХ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЧреЛрд▓рдВрдЧ рд╣рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХрд╛ рдмрд╣реБрдд рд╣реА рд╕рд╛рдл рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИред рдФрд░ рджреВрд╕рд░рд╛ рд╣реИ:



рд╕рдорд╛рдирддрд╛ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░реЗрдВ? рдпрд╣ рд╕рд╣реА рд╣реИ - go рдПрдХ goto рдлреЙрд░реНрдо рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред


рд▓реЗрдЦрди рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдХрдард┐рдирд╛рдИ рдХреЗ рд▓рд┐рдП рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреБрдЦреНрдпрд╛рдд рд╣реИрдВред рд╕рд╛рде рд╣реА goto рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдоред goto рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рдорд╕реНрдпрд╛рдУрдВ goto рдЬреНрдпрд╛рджрд╛рддрд░ рдЖрдзреБрдирд┐рдХ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рд╕реАрдЦрддреЗ рд╣реИрдВ рдХрд┐ goto рдХреЛ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ рдХреНрдпрд╛ рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдПрдкреАрдЖрдИ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛? рдЪрд▓рд┐рдП рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ!


рдХреНрдпрд╛ рд╣реБрдЖ goto ?


рддреЛ goto рдХреНрдпрд╛ рдЧрдбрд╝рдмрдбрд╝ рд╣реИ рдЬреЛ рдЗрддрдиреА рд╕рд╛рд░реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ? 60 рдХреЗ рджрд╢рдХ рдХреЗ рдЙрддреНрддрд░рд╛рд░реНрдз рдореЗрдВ, рдПрдЧрд░ рд╡рд┐рдПрдм рджрд┐рдЬреНрдХрд╕реНрдЯреНрд░рд╛ рдиреЗ рдХреБрдЫ рдкреНрд░рд╕рд┐рджреНрдз рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд┐рдЦрд╛, рдЬреЛ рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВ: рдЧреЛрдЯреЛ рдСрдкрд░реЗрдЯрд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рддрд░реНрдХ рдФрд░ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкрд░ рдиреЛрдЯреНрд╕ ред


goto рдЕрдореВрд░реНрддрддрд╛ рдХреЛ рдирд╖реНрдЯ рдХрд░ рджреЗрддрд╛ рд╣реИ


рдЗрди рдХрд╛рдореЛрдВ рдореЗрдВ, рджрд┐рдХреНрдЬрд╕реНрддреНрд░ рдиреЗ рдЪрд┐рдВрддрд╛ рдХреА рдХрд┐ рд╣рдо рдЧреИрд░-рддреБрдЪреНрдЫ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреИрд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреА рд╢реБрджреНрдзрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдХрдИ рджрд┐рд▓рдЪрд╕реНрдк рдмрд┐рдВрджреБ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдиреЗ рд╢рд╛рдпрдж рдпрд╣ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд╕реБрдирд╛ рд╣реИ:


рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХрднреА рдирд╣реАрдВред

рд╣рд╛рдВ, рдпрд╣ рд╕реНрдЯреНрд░рдХреНрдЪрд░рд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдиреЛрдЯреНрд╕ рд╕реЗ рд╣реИ ред рд▓реЗрдХрд┐рди рдЙрдирдХреА рдореБрдЦреНрдп рдЪрд┐рдВрддрд╛ рдЕрдореВрд░реНрддрддрд╛ рдереА ред рд╡рд╣ рдЙрдиреНрд╣реЗрдВ рд╕рд┐рд░ рдореЗрдВ рдзрд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрдбрд╝рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдкрд╛рдпрдерди рдореЗрдВ рдЗрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ:


 print("Hello World!") 

рдФрд░ рдЖрдкрдХреЛ print (рд▓рд╛рдЗрди рд╕реНрд╡рд░реВрдкрдг, рдмрдлрд░рд┐рдВрдЧ, рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЕрдВрддрд░, рдЖрджрд┐) рдХреЗ рд╕рднреА рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреЛ рдмрд╕ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ print рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд╕ рдХрд┐рдП рдЧрдП рдкрд╛рда рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЖрдк рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЗрд╕ рдХреЛрдб рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рджреАрдЬрдХрд╕реНрдЯреНрд░рд╛ рдЪрд╛рд╣рддреЗ рдереЗ рдХрд┐ рднрд╛рд╖рд╛рдПрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдореВрд░реНрддрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВред


рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдмреНрд▓реЙрдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ ALGOL рдЬреИрд╕реА рднрд╛рд╖рд╛рдПрдВ рдЬрдорд╛ рд╣реБрдИрдВ ~ 5 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рд╡рдХреНрддрд╡реНрдп: рдЙрдирдХреЗ рдкрд╛рд╕ рдЕрднреА рднреА рдирд┐рд╖реНрдкрд╛рджрди рдФрд░ goto рдХрд╛ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдзрд╛рдЧрд╛ рдерд╛:



рдФрд░ рднреА рдЕрдзрд┐рдЧреНрд░рд╣реАрдд рд╢рд░реНрддреЛрдВ, рдЪрдХреНрд░ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓:



рдЖрдк goto рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрди рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдкрд╣рд▓реЗ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ рд╕реЛрдЪрддреЗ рдереЗ: рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╢реЙрд░реНрдЯрдХрдЯ рдХреЗ рд░реВрдк рдореЗрдВред рд▓реЗрдХрд┐рди рдбреЗрдЬрдХрд╕реНрдЯреНрд░рд╛ рдиреЗ goto рдФрд░ рдмрд╛рдХреА рдирд┐рдпрдВрддреНрд░рдг рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рдмреАрдЪ рдмрдбрд╝рд╛ рдЕрдВрддрд░ рдмрддрд╛рдпрд╛ред рд╕рдм рдХреБрдЫ рдХреЗ рд▓рд┐рдП рд▓реЗрдХрд┐рди goto , рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдзрд╛рдЧрд╛


  • рдКрдкрд░ рд╕реЗ рдЖрддрд╛ рд╣реИ => [рдХреБрдЫ рд╣реЛрддрд╛ рд╣реИ] => рдкреНрд░рд╡рд╛рд╣ рдиреАрдЪреЗ рд╕реЗ рдЖрддрд╛ рд╣реИ

рд╣рдо рдЗрд╕реЗ "рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕ рдирд┐рдпрдо" рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ - рдпрджрд┐ рдирд┐рдпрдВрддреНрд░рдг рд╕рдВрд░рдЪрдирд╛ (рдХрдВрдЯреНрд░реЛрд▓ рдСрдкрд░реЗрдЯрд░) рдХрд╛ рдпрд╣ рд░реВрдк рд╣реИ, рддреЛ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЬрдм рдЖрдк рдЕрдВрджрд░ рдХреЗ рд╡рд┐рд╡рд░рдгреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк "рдХреБрдЫ рд╣реЛрддрд╛ рд╣реИ" рднрд╛рдЧ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмреНрд▓реЙрдХ рдХреЛ рдПрдХ рдирд┐рдпрдорд┐рдд рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдЯреАрдоред рдЗрд╕рд╕реЗ рднреА рдмреЗрд╣рддрд░, рдпрд╣ рдХрд┐рд╕реА рднреА рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реИ рдЬреЛ рдЗрди рдмреНрд▓реЙрдХреЛрдВ рд╕реЗ рдмрдирд╛ рд╣реИред рдЬрдм рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ:


 print("Hello World!") 

рдореБрдЭреЗ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдирд┐рд╖реНрдкрд╛рджрди рдереНрд░реЗрдб рдХрд╣рд╛рдБ рдЬрд╛рдПрдЧрд╛, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП print рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдФрд░ рдЙрд╕рдХреА рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдкрдврд╝рдирд╛ рд╣реЛрдЧрд╛ред рд╢рд╛рдпрдж рдЕрдВрджрд░ print рдореЗрдВ рдПрдХ рд▓реВрдк рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рдПрдХ рд╢рд░реНрдд рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рд╣реИ ... рдпрд╣ рд╕рдм рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ - рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдереНрд░реЗрдб print рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдПрдЧрд╛, рдлрд╝рдВрдХреНрд╢рди рдЕрдкрдирд╛ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдФрд░ рдЕрдВрддрддрдГ рдереНрд░реЗрдб рдХреЛрдб рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ I рдореИрдВ рдкрдврд╝рддрд╛ рд╣реВрдВред


рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ goto - рдПрдХ рдРрд╕реА рднрд╛рд╖рд╛ рдЬрд╣рд╛рдВ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдФрд░ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ goto рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ goto рдХрд╣реАрдВ рднреА, рдХрднреА рднреА рдХреВрдж рд╕рдХрддреЗ рд╣реИрдВ - рддреЛ рдпреЗ рд╕рдВрд░рдЪрдирд╛рдПрдБ рдмрд┐рд▓реНрдХреБрд▓ рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕ рдирд╣реАрдВ рд╣реИрдВ! рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд▓реВрдк рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╢рд░реНрдд рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдЕрдВрджрд░ goto ... рддреЛ рдпрд╣ goto рдХрд╣реАрдВ рднреА рдирд┐рд╖реНрдкрд╛рджрди рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╢рд╛рдпрдж рдирд┐рдпрдВрддреНрд░рдг рдЕрдЪрд╛рдирдХ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рднреА рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рд╣реИ! рдЖрдкрдХреЛ рдирд╣реАрдВ рдкрддрд╛!


рдФрд░ рдЬреЛ рдЕрдореВрд░реНрддрддрд╛ рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ - рдХрд┐рд╕реА рднреА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд goto рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдорд╛рдорд▓рд╛ рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рднреА рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рд╣реИред рднрд╛рд╖рд╛ рдХреЗ goto , рдЖрдк рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ goto рд╕реНрдкреЗрдЧреЗрдЯреА рдХреЛрдб рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред


рдФрд░ рдЬреИрд╕реЗ рд╣реА рджрд┐рдЬреНрдХреНрд╕реНрддреНрд░ рдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдордЭрд╛, рд╡рд╣ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдпрд╣рд╛рдБ рдЙрдирдХреА рдХреНрд░рд╛рдВрддрд┐рдХрд╛рд░реА рдзрд╛рд░рдгрд╛ рд╣реИ - рд╣рдореЗрдВ goto рд▓рд┐рдП рд╢рд░реНрддреЛрдВ / рдЫреЛрд░реЛрдВ / рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдореМрд▓рд┐рдХ рдЖрджрд┐рдо рдХреЗ рд░реВрдк рдореЗрдВ - рдФрд░ рд╣рдореЗрдВ рдЕрдкрдиреА рднрд╛рд╖рд╛рдУрдВ рд╕реЗ goto рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред


2018 рд╕реЗ, рдпрд╣ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд▓рдЧрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рдЙрдирдХреЗ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдЦрд┐рд▓реМрдиреЗ рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреИрд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрддреЗ рд╣реИрдВ? 1969 рдореЗрдВ, рдбрд┐рдХреНрд╕реНрдЯреНрд░рд╛ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд╕рдВрджрд┐рдЧреНрдз рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рдбреЛрдирд╛рд▓реНрдб рдирде рдиреЗ goto рдмрдЪрд╛рд╡ рдХрд┐рдпрд╛ ред рдЬреЛ рд▓реЛрдЧ goto рд╕рд╛рде рдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдмрди рдЧрдП рдереЗ, рд╡реЗ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдирдП, рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рдмрдВрдзрд╛рддреНрдордХ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдкреБрдирдГ рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рдареАрдХ рд╕реЗ рдирд╛рд░рд╛рдЬ рдереЗред рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдИ рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗ рдЧрдпрд╛ред


рдирддреАрдЬрддрди, рдЖрдзреБрдирд┐рдХ рднрд╛рд╖рд╛рдПрдВ рджрд┐рдЬреНрдХреНрд╕реНрдЯреНрд░рд╛ рдХреА рдореВрд▓ рд╢рдмреНрджреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝реА рдХрдо рд╕рдЦреНрдд рд╣реИрдВред



рд╡рд╛рдо: рдкрд╛рд░рдВрдкрд░рд┐рдХ goto ред рд╕рд╣реА: рдкрд╛рд▓рддреВ goto , рдЬреИрд╕рд╛ рдХрд┐ рд╕реА, рд╕реА #, рдЧреЛрд▓рдВрдЧ, рдЖрджрд┐ рдореЗрдВ рд╣реИред рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреА рд╕реАрдорд╛рдУрдВ рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡рд╣ рдЕрднреА рднреА рдЖрдкрдХреЗ рдЬреВрддреЗ рдкрд░ рдкреЗрд╢рд╛рдм рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЕрд▓рдЧ рд╕реЗ рдЪреАрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред

рд╡реЗ рдЖрдкрдХреЛ break , continue рдпрд╛ return рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдирд┐рдпрдВрддреНрд░рдг рдмрдпрд╛рдиреЛрдВ рдХреЗ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╕реНрддрд░ рдХреЛ рдХреВрджрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рд╕реНрддрд░ рдкрд░, рд╡реЗ рд╕рднреА рджрд┐рдЬреНрдХреНрд╕реНрдЯреНрд░рд╛ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдирд┐рд░реНрдорд┐рдд рд╣реИрдВ рдФрд░ рдПрдХ рд╕рдЦреНрдд рддрд░реАрдХреЗ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдлрд╝рдВрдХреНрд╢рди - рдПрдХ рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдзрд╛рдЧреЗ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореВрд▓рднреВрдд рдЙрдкрдХрд░рдг - рдЕрд╡рд┐рдирд╛рд╢реА рд╣реИрдВред рдЖрдк рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рджреВрд╕рд░реЗ рдлрд╝рдВрдХреНрд╢рди рдкрд░ break рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд░реНрддрдорд╛рди рдлрд╝рдВрдХреНрд╢рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЖрдкрдХреЛ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рд▓реМрдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдзрд╛рдЧреЗ рдХрд╛ рдХреЛрдИ рд╣реЗрд░рдлреЗрд░ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред


рдФрд░ рдЬрд┐рди рднрд╛рд╖рд╛рдУрдВ рдиреЗ goto рдСрдкрд░реЗрдЯрд░ (рд╕реА, рд╕реА #, рдЧреЛрд▓рдВрдЧ, ...) рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдЧрдВрднреАрд░ рд░реВрдк рд╕реЗ рд╕реАрдорд┐рдд рдХрд░ рджрд┐рдпрд╛ред рдХрдо рд╕реЗ рдХрдо, рд╡реЗ рдЖрдкрдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╢рд░реАрд░ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдХреВрджрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЕрд╕реЗрдВрдмрд▓рд░ [2] рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдХреНрд▓рд╛рд╕рд┐рдХ, рдЕрд╕реАрдорд┐рдд goto рдЕрддреАрдд рдХреА рдмрд╛рдд рд╣реИред рджрд┐рдХреНрдЬрд╕реНрддреНрд░ рдЬреАрддрд╛ред


рдЧреЛрдЯреЛ рдХреЗ рдмрд┐рдирд╛ рдмрд╣рд╛рджреБрд░ рдирдИ рджреБрдирд┐рдпрд╛


goto рдХреЗ рдЧрд╛рдпрдм рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рд╣реБрдЖ - рднрд╛рд╖рд╛ рдирд┐рд░реНрдорд╛рддрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдПрдХ рд╕рдВрд░рдЪрд┐рдд рдкреНрд░рд╡рд╛рд╣ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗред


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╛рдпрдерди рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд╛рдВрдд рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ - рдПрдХ рд╕рдВрджрд░реНрдн рдкреНрд░рдмрдВрдзрдХ ред рдЖрдк рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:


 # Python with open("my-file") as file_handle: some code 

рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ some code рд░рдирдЯрд╛рдЗрдо рдкрд░ рдЦреЛрд▓реА рдЬрд╛рдПрдЧреА, рд▓реЗрдХрд┐рди рдЙрд╕рдХреЗ рдмрд╛рдж - рддреБрд░рдВрдд рдмрдВрдж рдХрд░ рджреА рдЧрдИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрдзреБрдирд┐рдХ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕рдорддреБрд▓реНрдп ( RAII , use , try-with-resource, defer , ...) рд╣реИрдВред рдФрд░ рд╡реЗ рд╕рднреА рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдХреНрд░рдо рдореЗрдВ рд╣реИред рдФрд░ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЕрдЧрд░ рд╣рдо goto рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреНрд▓реЙрдХ рдХреЗ with рдХреВрджрддреЗ рд╣реИрдВ? рдлрд╛рдЗрд▓ рдЦреБрд▓реА рд╣реИ рдпрд╛ рдирд╣реАрдВ? рдФрд░ рдЕрдЧрд░ рд╣рдо рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдмрд╛рд╣рд░ рдЬрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╡рд╣рд╛рдВ рд╕реЗ рдмрд╛рд╣рд░ рдХреВрдж рдЬрд╛рддреЗ рд╣реИрдВ?


рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рдХреЛрдб рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, __exit__() рд╡рд┐рдзрд┐ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ рдЬреЛ рдЦреБрд▓реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рдХрдиреЗрдХреНрд╢рдиред

рдХреНрдпрд╛ рдлрд╛рдЗрд▓ рдмрдВрдж рд╣реЛрдЧреА? goto , рд╕рдВрджрд░реНрдн рдкреНрд░рдмрдВрдзрдХ рдХреЗрд╡рд▓ рд╕реНрдкрд╖реНрдЯ рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред


рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ - рдЬрдм рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреЛрдб рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдЕрдХреНрд╕рд░ - рдХреЙрд▓рд┐рдВрдЧ рдХреЛрдб рдХреЛ рд╕реНрдЯреИрдХ (рдХреЙрд▓) рдХреА рддреНрд░реБрдЯрд┐ рдХрд╛ рд╡рд┐рд╡рд░рдг рднреЗрдЬреЗрдВ рдФрд░ рдпрд╣ рддрдп рдХрд░рдиреЗ рджреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред рдЖрдзреБрдирд┐рдХ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд╛рдг рд╣реЛрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдЕрдкрд╡рд╛рдж рдпрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рддреНрд░реБрдЯрд┐ рдмрдврд╝рд╛рдиреЗ рдХреЗ рдЕрдиреНрдп рд░реВрдкред рд▓реЗрдХрд┐рди рдпрд╣ рдорджрдж рдХреЗрд╡рд▓ рддрднреА рдЙрдкрд▓рдмреНрдз рд╣реИ рдЬрдм рднрд╛рд╖рд╛ рдореЗрдВ рдХреЙрд▓ рд╕реНрдЯреИрдХ рдФрд░ рдПрдХ рдордЬрдмреВрдд "рдХреЙрд▓" рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реЛред FLOW-MATIC рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдкреНрд░рд╡рд╛рд╣ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕реНрдкреЗрдЧреЗрдЯреА рдХреЛ рдпрд╛рдж рдХрд░реЗрдВ рдФрд░ рдмреАрдЪ рдореЗрдВ рдлреЗрдВрдХреЗ рдЧрдП рдЕрдкрд╡рд╛рдж рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВред рдпрд╣ рднреА рдХрд╣рд╛рдБ рдЖ рд╕рдХрддрд╛ рд╣реИ?


рдХреЛрдИ рдФрд░ goto рдирд╣реАрдВ


рддреЛ, рдкрд╛рд░рдВрдкрд░рд┐рдХ goto - рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рд╕реАрдорд╛рдУрдВ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ - рди рдХреЗрд╡рд▓ рдЦрд░рд╛рдм рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдпрджрд┐ рдХреЗрд╡рд▓ рдпрд╣реА рд╣реЛрддрд╛, рддреЛ goto рдард╣рд░ рд╕рдХрддрд╛ рдерд╛ - рдХрдИ рдЦрд░рд╛рдм рднрд╛рд╖рд╛ рдирд┐рд░реНрдорд╛рдг рдмрдиреЗ рд░рд╣реЗред


рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рднрд╛рд╖рд╛ рдореЗрдВ рдмрд╣реБрдд goto рдлреАрдЪрд░ рд╕рдм рдХреБрдЫ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИред рддреГрддреАрдп-рдкрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рд╕реНрд░реЛрдд рдХреЛ рдЬрд╛рдиреЗ рдмрд┐рдирд╛, рдЖрдк рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдХрд╛рд░реНрдп рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВ рдФрд░ рдЬреЛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╕реНрдерд╛рдиреАрдп рдХреЛрдб рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рдмрд╛рдзрд╛ рд╣реИред рд╕рдВрджрд░реНрдн рдкреНрд░рдмрдВрдзрдХреЛрдВ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рддреНрд░реБрдЯрд┐ рдкреЙрдк-рдЕрдк рдЬреИрд╕реА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рднреА рдЦреЛ рдЬрд╛рддреА рд╣реИрдВред рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕ рдирд┐рдпрдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдирд┐рдпрдВрддреНрд░рдг рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ, goto рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛ рджреЗрдирд╛ рдмреЗрд╣рддрд░ рд╣реИред


"рдЧреЛ" рдЬреИрд╕реЗ рднрд╛рд╡реЛрдВ рдХреЗ рдЦрддрд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


рддреЛ, рд╣рдордиреЗ goto рдХрд╣рд╛рдиреА рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ go рд╕рдВрдЪрд╛рд▓рдХ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ? рдЦреИрд░ ... рд╕рдм рд╕рдм рдореЗрдВ! рд╕рд╛рджреГрд╢реНрдп рдЪреМрдВрдХрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╕рдЯреАрдХ рд╣реИред


рдЧреЛ рдПрдмреНрд╕рдЯреНрд░реИрдХреНрдЯ рдХреЛ рддреЛрдбрд╝рддреЗ рд╣реИрдВред


рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рд╣рдордиреЗ рдХреИрд╕реЗ рдХрд╣рд╛ рдХрд┐ рдЕрдЧрд░ рднрд╛рд╖рд╛ goto рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рддреЛ рдХреЛрдИ рднреА рдлрд╝рдВрдХреНрд╢рди goto рдХреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдЫрд┐рдкрд╛ рд╕рдХрддрд╛ рд╣реИ? рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдореЗрдВ, go рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЬрдиреНрдо рджреЗрддреА рд╣реИрдВ - рдХреЛрдИ рднреА рдХрд╛рд░реНрдп рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдХрд╛рд░реНрдп рдХреЛ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИ (рдпрд╛ рдирд╣реАрдВ рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реИ)ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдиреЗ рдирд┐рдпрдВрддреНрд░рдг рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕реНрд░реЛрдд рдФрд░ рд╕рдм рдХреБрдЫ рдЬрд┐рд╕реЗ рд╡рд╣ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдФрд░ рдХрдм рдЦрддреНрдо рд╣реЛрдЧрд╛? рдХрд╣рдирд╛ рдХрдард┐рди рд╣реИред рдпрджрд┐ рдЖрдк go рдФрд░ рдЗрд╕рдХреЗ рдПрдирд╛рд▓реЙрдЧреНрд╕ рд╣реИрдВ, рддреЛ рдлрд╝рдВрдХреНрд╢рди рдЕрдм рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕ рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдПрдкреАрдЖрдИ рдкрд░ рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рдЗрд╕реЗ "рдХрд╛рд░рдг рдЙрд▓реНрд▓рдВрдШрди" рдХрд╣рд╛ рдФрд░ рдкрд╛рдпрд╛ рдХрд┐ рдпрд╣ рдХрдИ рд╕рд╛рдорд╛рдиреНрдп, рдореВрд▓ рд░реВрдк рд╕реЗ asyncio рдФрд░ рдЯреНрд╡рд┐рд╕реНрдЯреЗрдб рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХрд╛ рдореВрд▓ рдХрд╛рд░рдг рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдлреНрд▓реЛ рдХрдВрдЯреНрд░реЛрд▓ рд╕рдорд╕реНрдпрд╛рдПрдВ, рдЙрдЪрд┐рдд рд╢рдЯ рдбрд╛рдЙрди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдЖрджрд┐ред


рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдФрд░ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд╛рд░реНрдпрдХреНрд░рдо 3MB / s рдХреА рдЧрддрд┐ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ 1MB / s рдХреА рдЧрддрд┐ рд╕реЗ рдЫреЛрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рддрджрдиреБрд╕рд╛рд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдЦрдкрдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдФрд░ рд▓реЗрдЦ рджреЗрдЦреЗрдВ

рдЧреЛ-рдПрдХреНрд╕рдкреНрд░реЗрд╢рдВрд╕ рдЦреБрд▓реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдСрдЯреЛ-рд╕рдлрд╛рдИ рдХреЛ рддреЛрдбрд╝рддреЗ рд╣реИрдВред


рдЖрдЗрдП рдлрд┐рд░ рд╕реЗ рдХрдерди рдХреЗ with рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ:


 # Python with open("my-file") as file_handle: some code 

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рд╣рдордиреЗ рдХрд╣рд╛ рдХрд┐ рд╣рдореЗрдВ "рдЧрд╛рд░рдВрдЯреА" рджреА рдЧрдИ рдереА рдХрд┐ some code рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рдлрд╝рд╛рдЗрд▓ рдЦреБрд▓реА рд░рд╣реЗрдЧреА, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧреАред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ some code рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛рд░реНрдп рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ? : , , with , with , , , . , ; , , some code .


, , - , , .


, Python threading тАФ , , тАФ , with

, , , ( ). , . , .


go- .


, , (exceptions), . " ". , . , , . , , тАж , . , - . ( , , " - " тАФ ; .) Rust тАФ , , - тАФ . (thread) , Rust .


, , join , errbacks Twisted Promise.catch Javascript . , , . , Traceback . Promise.catch .


, .


go


, goto , go- тАФ , , , . , goto , , go .


, , ! :


  • go -, , " ",
  • , go -.

, Trio .


go


: , , , . , , :



, , , " " .


? " " ,


) , , ( ),
) , .


. , - . , .. [3]


: , , , "" , . Trio , async with :



, as nursery nursery . nursery.start_soon() , () : myfunc anotherfunc . . , , () , , .



, , тАФ , , . , .


, .

:



, . рдпрд╣рд╛рдБ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╣реИрдВ:


.


go- тАФ , , , . тАФ , , . , , .


.


, . :


 run_concurrently([myfunc, anotherfunc]) 

async.gather Python, Promise.all Javascript, ..

, , , . , accept , .
accept Trio:


 async with trio.open_nursery() as nursery: while True: incoming_connection = await server_socket.accept() nursery.start_soon(connection_handler, incoming_connection) 

, , run_concurrently . , run_concurrently тАФ , , run_concurrently , .


.


. , , ? : . , async with open_nursery() nursery.start_soon() , тАФ [4], , , . , , .


, , " ", :


  • , , , , , .
  • , .
  • , .

, .


, , go-, .


, .


, - . , , . :


 async with my_supervisor_library.open_supervisor() as nursery_alike: nursery_alike.start_soon(...) 

, , . .


Trio , asyncio : start_soon() , Future ( , Future ). , ( , Trio Future !), .


, , .


, , тАФ тАФ .


Trio, . , , " " ( ), Cancelled . , , тАФ - , " ", , .. , , . , , , .


.


" ", with . , with , .


.


, , . .


Trio, , тАж - . , . , тАФ " " тАФ , myfunc anotherfunc , . , , .


, : (re-raise) , . ,


" " , , , , , .

, , . ?


тАФ ( ) , . , , , , .


, , - ( task cancellation ). C# Golang, тАФ .


go


goto , with ; go - . рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:


  • , , , . ( : - )
  • тАФ Python , ctrl-C ( ). , .


, . ?


тАж : ! , , . , , , break continue .


, . тАФ , 1970 , goto .


. (Knuth, 1974, .275):


, goto , , " " goto . goto ! , , goto , . , , . , тАФ , тАФ "goto" .

: . , , . , , . , , .


, Happy Eyeballs ( RFC 8305 ), TCP . , тАФ , , . Twisted тАФ 600 Python . 15 . , , , . , , . , . ? . .


рдирд┐рд╖реНрдХрд░реНрд╖


тАФ go , , , Futures , Promises ,тАж тАФ goto , . goto , -- goto , . , , ; , . , goto , .


, , ( CTRL+C ) , .


, , , , тАФ , goto . FLOW-MATIC , , - . , , Trio , , .


рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ


Trio .


:


Trio : https://trio.discourse.group/

рдзрдиреНрдпрд╡рд╛рдж


Graydon Hoare, Quentin Pradet, and Hynek Schlawack . , , .


berez .

: FLOW-MATIC (PDF), .


Wolves in Action, Martin Pannier, CC-BY-SA 2.0 , .
, Daniel Borker, CC0 public domain dedication .



[2] WebAssembly , goto : ,


[3] , , , , :
The "parallel composition" operator in Cooperating/Communicating Sequential Processes and Occam, the fork/join model, Erlang supervisors, Martin S├║strik's libdill , crossbeam::scope / rayon::scope Rust. golang.org/x/sync/errgroup github.com/oklog/run Golang.
, - .


[4] start_soon() , , start_soon , , , . , .



Nathaniel J. Smith , Ph.D., UC Berkeley numpy , Python . Nathaniel .



:



, , , Haskell , , .


( , 0xd34df00d , ) , ( Happy Eyeballs ), .


, Trio ? Haskell Golang ?


:

Source: https://habr.com/ru/post/hi479186/


All Articles