<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Control Flow on Nalar</title>
    <link>https://nalar.dev/tags/control-flow/</link>
    <description>Recent content in Control Flow on Nalar</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 16 Sep 2026 00:00:00 +0700</lastBuildDate>
    <atom:link href="https://nalar.dev/tags/control-flow/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Go Defer Saves Call Arguments Before Return</title>
      <link>https://nalar.dev/go-defer-saves-call-arguments-before-return/</link>
      <pubDate>Wed, 16 Sep 2026 00:00:00 +0700</pubDate>
      <guid>https://nalar.dev/go-defer-saves-call-arguments-before-return/</guid>
      <description>&lt;p&gt;A Go &lt;code&gt;defer&lt;/code&gt; statement evaluates its function value and call parameters when execution reaches the statement, even though the deferred function runs only as the surrounding function returns. Mutations between those two moments do not retroactively change already saved argument values.&lt;/p&gt;&#xA;&lt;p&gt;This split between evaluation and invocation is part of the language semantics rather than an optimization detail. Each executed &lt;code&gt;defer&lt;/code&gt; records a call with values established at that point. Return processing later invokes recorded calls in reverse registration order.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
