<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Programming on QuickRef - Personal Developer Reference</title><link>http://qref.eknath.dev/categories/programming/</link><description>Recent content in Programming on QuickRef - Personal Developer Reference</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 01 Jan 2023 00:00:00 +0000</lastBuildDate><atom:link href="http://qref.eknath.dev/categories/programming/index.xml" rel="self" type="application/rss+xml"/><item><title>Bash</title><link>http://qref.eknath.dev/programming/bash/</link><pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate><guid>http://qref.eknath.dev/programming/bash/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>Bash (Bourne Again SHell) is a Unix shell and command language. It&amp;rsquo;s the default shell on most Linux systems and macOS, and is widely used for system administration and automation.&lt;/p>
&lt;h2 id="variables">Variables&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Variable assignment (no spaces around =)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#79c0ff">name&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;value&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#79c0ff">number&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#a5d6ff">42&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Using variables&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>echo &lt;span style="color:#79c0ff">$name&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>echo &lt;span style="color:#a5d6ff">${&lt;/span>&lt;span style="color:#79c0ff">name&lt;/span>&lt;span style="color:#a5d6ff">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>echo &lt;span style="color:#a5d6ff">&amp;#34;Hello &lt;/span>&lt;span style="color:#79c0ff">$name&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="special-variables">Special Variables&lt;/h3>
&lt;ul>
&lt;li>&lt;code>$0&lt;/code> - Script name&lt;/li>
&lt;li>&lt;code>$1, $2, ...&lt;/code> - Script arguments&lt;/li>
&lt;li>&lt;code>$#&lt;/code> - Number of arguments&lt;/li>
&lt;li>&lt;code>$@&lt;/code> - All arguments&lt;/li>
&lt;li>&lt;code>$?&lt;/code> - Exit status of last command&lt;/li>
&lt;li>&lt;code>$$&lt;/code> - Process ID&lt;/li>
&lt;li>&lt;code>$!&lt;/code> - Process ID of last background command&lt;/li>
&lt;/ul>
&lt;h2 id="string-operations">String Operations&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># String length&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff">${#&lt;/span>&lt;span style="color:#79c0ff">string&lt;/span>&lt;span style="color:#a5d6ff">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Substring&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff">${&lt;/span>&lt;span style="color:#79c0ff">string&lt;/span>:&lt;span style="color:#79c0ff">position&lt;/span>:&lt;span style="color:#79c0ff">length&lt;/span>&lt;span style="color:#a5d6ff">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Replace&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff">${&lt;/span>&lt;span style="color:#79c0ff">string&lt;/span>/old/new&lt;span style="color:#a5d6ff">}&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Replace first occurrence&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff">${&lt;/span>&lt;span style="color:#79c0ff">string&lt;/span>//old/new&lt;span style="color:#a5d6ff">}&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Replace all occurrences&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Remove prefix/suffix&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff">${&lt;/span>&lt;span style="color:#79c0ff">string&lt;/span>#prefix&lt;span style="color:#a5d6ff">}&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Remove shortest prefix&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff">${&lt;/span>&lt;span style="color:#79c0ff">string&lt;/span>##prefix&lt;span style="color:#a5d6ff">}&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Remove longest prefix&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff">${&lt;/span>&lt;span style="color:#79c0ff">string&lt;/span>%suffix&lt;span style="color:#a5d6ff">}&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Remove shortest suffix&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff">${&lt;/span>&lt;span style="color:#79c0ff">string&lt;/span>%%suffix&lt;span style="color:#a5d6ff">}&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Remove longest suffix&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="arrays">Arrays&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Array declaration&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#79c0ff">arr&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=(&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;item1&amp;#34;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;item2&amp;#34;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;item3&amp;#34;&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Access elements&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>echo &lt;span style="color:#a5d6ff">${&lt;/span>&lt;span style="color:#79c0ff">arr&lt;/span>[0]&lt;span style="color:#a5d6ff">}&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># First element&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>echo &lt;span style="color:#a5d6ff">${&lt;/span>&lt;span style="color:#79c0ff">arr&lt;/span>[@]&lt;span style="color:#a5d6ff">}&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># All elements&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>echo &lt;span style="color:#a5d6ff">${#&lt;/span>&lt;span style="color:#79c0ff">arr&lt;/span>[@]&lt;span style="color:#a5d6ff">}&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Array length&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Add elements&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#79c0ff">arr&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+=(&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;item4&amp;#34;&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="conditionals">Conditionals&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span> condition &lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span>; &lt;span style="color:#ff7b72">then&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic"># commands&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">elif&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span> condition &lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span>; &lt;span style="color:#ff7b72">then&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic"># commands&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">else&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic"># commands&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">fi&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="test-conditions">Test Conditions&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># File tests&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span> -f file &lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># File exists&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span> -d directory &lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Directory exists&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span> -r file &lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># File is readable&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span> -w file &lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># File is writable&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span> -x file &lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># File is executable&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># String tests&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span> -z string &lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># String is empty&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span> -n string &lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># String is not empty&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span> &lt;span style="color:#79c0ff">string1&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> string2 &lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Strings are equal&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span> string1 !&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> string2 &lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Strings are not equal&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Numeric tests&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span> num1 -eq num2 &lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Equal&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span> num1 -ne num2 &lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Not equal&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span> num1 -gt num2 &lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Greater than&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span> num1 -lt num2 &lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Less than&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span> num1 -ge num2 &lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Greater than or equal&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span> num1 -le num2 &lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Less than or equal&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="loops">Loops&lt;/h2>
&lt;h3 id="for-loop">For Loop&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Loop through list&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> item in item1 item2 item3; &lt;span style="color:#ff7b72">do&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#79c0ff">$item&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">done&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Loop through range&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> i in &lt;span style="color:#ff7b72;font-weight:bold">{&lt;/span>1..10&lt;span style="color:#ff7b72;font-weight:bold">}&lt;/span>; &lt;span style="color:#ff7b72">do&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#79c0ff">$i&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">done&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># C-style loop&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">((&lt;/span>&lt;span style="color:#79c0ff">i&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>1; i&amp;lt;&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>10; i++&lt;span style="color:#ff7b72;font-weight:bold">))&lt;/span>; &lt;span style="color:#ff7b72">do&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#79c0ff">$i&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">done&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Loop through files&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> file in *.txt; &lt;span style="color:#ff7b72">do&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#79c0ff">$file&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">done&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="while-loop">While Loop&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">while&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span> condition &lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span>; &lt;span style="color:#ff7b72">do&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic"># commands&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">done&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Reading file line by line&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">while&lt;/span> &lt;span style="color:#79c0ff">IFS&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> read -r line; &lt;span style="color:#ff7b72">do&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>&lt;span style="color:#79c0ff">$line&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">done&lt;/span> &amp;lt; file.txt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="until-loop">Until Loop&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">until&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span> condition &lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span>; &lt;span style="color:#ff7b72">do&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic"># commands&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">done&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="functions">Functions&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Function definition&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>function_name&lt;span style="color:#ff7b72;font-weight:bold">()&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic"># commands&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#a5d6ff">&amp;#34;Parameter 1: &lt;/span>&lt;span style="color:#79c0ff">$1&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#a5d6ff">&amp;#34;Parameter 2: &lt;/span>&lt;span style="color:#79c0ff">$2&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Call function&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>function_name arg1 arg2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Function with local variables&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>my_function&lt;span style="color:#ff7b72;font-weight:bold">()&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> local &lt;span style="color:#79c0ff">local_var&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;local value&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#79c0ff">$local_var&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="inputoutput">Input/Output&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Read user input&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>read -p &lt;span style="color:#a5d6ff">&amp;#34;Enter your name: &amp;#34;&lt;/span> name
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>echo &lt;span style="color:#a5d6ff">&amp;#34;Hello &lt;/span>&lt;span style="color:#79c0ff">$name&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Read with options&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>read -s password &lt;span style="color:#8b949e;font-style:italic"># Silent input&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>read -t &lt;span style="color:#a5d6ff">10&lt;/span> input &lt;span style="color:#8b949e;font-style:italic"># Timeout after 10 seconds&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>read -n &lt;span style="color:#a5d6ff">1&lt;/span> char &lt;span style="color:#8b949e;font-style:italic"># Read single character&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="file-operations">File Operations&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Check if file exists&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span> -f &lt;span style="color:#a5d6ff">&amp;#34;file.txt&amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span>; &lt;span style="color:#ff7b72">then&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#a5d6ff">&amp;#34;File exists&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Create file&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>touch file.txt
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Write to file&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>echo &lt;span style="color:#a5d6ff">&amp;#34;content&amp;#34;&lt;/span> &amp;gt; file.txt &lt;span style="color:#8b949e;font-style:italic"># Overwrite&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>echo &lt;span style="color:#a5d6ff">&amp;#34;content&amp;#34;&lt;/span> &amp;gt;&amp;gt; file.txt &lt;span style="color:#8b949e;font-style:italic"># Append&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Read file&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">while&lt;/span> &lt;span style="color:#79c0ff">IFS&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> read -r line; &lt;span style="color:#ff7b72">do&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>&lt;span style="color:#79c0ff">$line&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">done&lt;/span> &amp;lt; file.txt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="process-control">Process Control&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Run in background&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>command &amp;amp;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Wait for background jobs&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>wait
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Kill process&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kill PID
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>killall process_name
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Check if process is running&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> pgrep process_name &amp;gt; /dev/null; &lt;span style="color:#ff7b72">then&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#a5d6ff">&amp;#34;Process is running&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">fi&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="error-handling">Error Handling&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Exit on error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>set -e
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Check command success&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> command; &lt;span style="color:#ff7b72">then&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#a5d6ff">&amp;#34;Success&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">else&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#a5d6ff">&amp;#34;Failed&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Short-circuit evaluation&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>command &lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&amp;amp;&lt;/span> echo &lt;span style="color:#a5d6ff">&amp;#34;Success&amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">||&lt;/span> echo &lt;span style="color:#a5d6ff">&amp;#34;Failed&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="advanced-features">Advanced Features&lt;/h2>
&lt;h3 id="command-substitution">Command Substitution&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Modern syntax&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#79c0ff">result&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#ff7b72">$(&lt;/span>command&lt;span style="color:#ff7b72">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Legacy syntax&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#79c0ff">result&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#a5d6ff">`&lt;/span>command&lt;span style="color:#a5d6ff">`&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Examples&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#79c0ff">current_date&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#ff7b72">$(&lt;/span>date&lt;span style="color:#ff7b72">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#79c0ff">file_count&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#ff7b72">$(&lt;/span>ls | wc -l&lt;span style="color:#ff7b72">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="parameter-expansion">Parameter Expansion&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Default values&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff">${&lt;/span>&lt;span style="color:#79c0ff">variable&lt;/span>&lt;span style="color:#ff7b72">:-&lt;/span>&lt;span style="color:#79c0ff">default&lt;/span>&lt;span style="color:#a5d6ff">}&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Use default if variable is unset&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff">${&lt;/span>&lt;span style="color:#79c0ff">variable&lt;/span>:=default&lt;span style="color:#a5d6ff">}&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Set variable to default if unset&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff">${&lt;/span>&lt;span style="color:#79c0ff">variable&lt;/span>:+alternate&lt;span style="color:#a5d6ff">}&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Use alternate if variable is set&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff">${&lt;/span>&lt;span style="color:#79c0ff">variable&lt;/span>:?error&lt;span style="color:#a5d6ff">}&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Exit with error if variable is unset&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="arithmetic">Arithmetic&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Arithmetic expansion&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#79c0ff">result&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#ff7b72">$((&lt;/span>&lt;span style="color:#a5d6ff">5&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> &lt;span style="color:#a5d6ff">3&lt;/span>&lt;span style="color:#ff7b72">))&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#79c0ff">result&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#ff7b72">$((&lt;/span>variable &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> &lt;span style="color:#a5d6ff">2&lt;/span>&lt;span style="color:#ff7b72">))&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Increment/decrement&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">((&lt;/span>counter++&lt;span style="color:#ff7b72;font-weight:bold">))&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">((&lt;/span>counter--&lt;span style="color:#ff7b72;font-weight:bold">))&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="best-practices">Best Practices&lt;/h2>
&lt;ul>
&lt;li>Always quote variables: &lt;code>&amp;quot;$variable&amp;quot;&lt;/code>&lt;/li>
&lt;li>Use &lt;code>#!/bin/bash&lt;/code> as the first line&lt;/li>
&lt;li>Set &lt;code>set -e&lt;/code> to exit on errors&lt;/li>
&lt;li>Use &lt;code>set -u&lt;/code> to exit on undefined variables&lt;/li>
&lt;li>Use &lt;code>shellcheck&lt;/code> to validate scripts&lt;/li>
&lt;li>Use meaningful variable names&lt;/li>
&lt;li>Add comments for complex logic&lt;/li>
&lt;/ul>
&lt;h2 id="common-patterns">Common Patterns&lt;/h2>
&lt;h3 id="argument-parsing">Argument Parsing&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">while&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">[[&lt;/span> &lt;span style="color:#79c0ff">$#&lt;/span> -gt &lt;span style="color:#a5d6ff">0&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">]]&lt;/span>; &lt;span style="color:#ff7b72">do&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">case&lt;/span> &lt;span style="color:#79c0ff">$1&lt;/span> in
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> -h|--help&lt;span style="color:#ff7b72;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#a5d6ff">&amp;#34;Usage: &lt;/span>&lt;span style="color:#79c0ff">$0&lt;/span>&lt;span style="color:#a5d6ff"> [options]&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> exit &lt;span style="color:#a5d6ff">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ;;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> -v|--verbose&lt;span style="color:#ff7b72;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#79c0ff">verbose&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>true
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> shift
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ;;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> *&lt;span style="color:#ff7b72;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#a5d6ff">&amp;#34;Unknown option: &lt;/span>&lt;span style="color:#79c0ff">$1&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> exit &lt;span style="color:#a5d6ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ;;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">esac&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">done&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="script-template">Script Template&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>set -euo pipefail
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Script description&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Usage: script.sh [options] arguments&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Default values&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#79c0ff">verbose&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>false
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#79c0ff">dry_run&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>false
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Functions&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>usage&lt;span style="color:#ff7b72;font-weight:bold">()&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#a5d6ff">&amp;#34;Usage: &lt;/span>&lt;span style="color:#79c0ff">$0&lt;/span>&lt;span style="color:#a5d6ff"> [options] arguments&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#a5d6ff">&amp;#34;Options:&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#a5d6ff">&amp;#34; -h, --help Show this help&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#a5d6ff">&amp;#34; -v, --verbose Verbose output&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#a5d6ff">&amp;#34; -n, --dry-run Dry run mode&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>main&lt;span style="color:#ff7b72;font-weight:bold">()&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic"># Main script logic&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#a5d6ff">&amp;#34;Script starting...&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Parse arguments&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">while&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">[[&lt;/span> &lt;span style="color:#79c0ff">$#&lt;/span> -gt &lt;span style="color:#a5d6ff">0&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">]]&lt;/span>; &lt;span style="color:#ff7b72">do&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">case&lt;/span> &lt;span style="color:#79c0ff">$1&lt;/span> in
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> -h|--help&lt;span style="color:#ff7b72;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> usage
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> exit &lt;span style="color:#a5d6ff">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ;;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> -v|--verbose&lt;span style="color:#ff7b72;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#79c0ff">verbose&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>true
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> shift
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ;;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> -n|--dry-run&lt;span style="color:#ff7b72;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#79c0ff">dry_run&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>true
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> shift
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ;;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> *&lt;span style="color:#ff7b72;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#a5d6ff">&amp;#34;Unknown option: &lt;/span>&lt;span style="color:#79c0ff">$1&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> usage
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> exit &lt;span style="color:#a5d6ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ;;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">esac&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">done&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Run main function&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>main &lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>&lt;span style="color:#79c0ff">$@&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="see-also">See Also&lt;/h2>
&lt;ul>
&lt;li>&lt;code>man bash&lt;/code> - Complete manual&lt;/li>
&lt;li>&lt;code>help&lt;/code> - Built-in help for bash builtins&lt;/li>
&lt;li>&lt;code>shellcheck&lt;/code> - Script analysis tool&lt;/li>
&lt;li>&lt;code>zsh&lt;/code> - Alternative shell with more features&lt;/li>
&lt;/ul></description></item><item><title>C</title><link>http://qref.eknath.dev/programming/c/</link><pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate><guid>http://qref.eknath.dev/programming/c/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>C is a general-purpose programming language that provides low-level access to memory and system resources. It&amp;rsquo;s the foundation for many operating systems, embedded systems, and performance-critical applications.&lt;/p>
&lt;h2 id="installation">Installation&lt;/h2>
&lt;h3 id="compilers">Compilers&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># GCC (GNU Compiler Collection)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo apt install gcc &lt;span style="color:#8b949e;font-style:italic"># Ubuntu/Debian&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>brew install gcc &lt;span style="color:#8b949e;font-style:italic"># macOS&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo yum install gcc &lt;span style="color:#8b949e;font-style:italic"># CentOS/RHEL&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Clang&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo apt install clang &lt;span style="color:#8b949e;font-style:italic"># Ubuntu/Debian&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>brew install llvm &lt;span style="color:#8b949e;font-style:italic"># macOS&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Microsoft Visual Studio (Windows)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Download from https://visualstudio.microsoft.com/&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="build-tools">Build Tools&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Make&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo apt install make &lt;span style="color:#8b949e;font-style:italic"># Usually pre-installed&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># GDB (GNU Debugger)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo apt install gdb &lt;span style="color:#8b949e;font-style:italic"># Ubuntu/Debian&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>brew install gdb &lt;span style="color:#8b949e;font-style:italic"># macOS&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="basic-syntax">Basic Syntax&lt;/h2>
&lt;h3 id="hello-world">Hello World&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;stdio.h&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">main&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Hello, World!&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="compilation">Compilation&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Basic compilation&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gcc -o program program.c
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># With debugging info&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gcc -g -o program program.c
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># With warnings&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gcc -Wall -Wextra -o program program.c
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># C standard version&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gcc -std&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>c99 -o program program.c
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="data-types">Data Types&lt;/h2>
&lt;h3 id="primitive-types">Primitive Types&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Integer types
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> num &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">42&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">short&lt;/span> s &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">long&lt;/span> l &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">1000000L&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">long&lt;/span> &lt;span style="color:#ff7b72">long&lt;/span> ll &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">1000000000LL&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Unsigned types
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">unsigned&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span> u &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">42U&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">unsigned&lt;/span> &lt;span style="color:#ff7b72">short&lt;/span> us &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">10U&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">unsigned&lt;/span> &lt;span style="color:#ff7b72">long&lt;/span> ul &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">1000000UL&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">unsigned&lt;/span> &lt;span style="color:#ff7b72">long&lt;/span> &lt;span style="color:#ff7b72">long&lt;/span> ull &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">1000000000ULL&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Floating point
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">float&lt;/span> f &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">3.14f&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">double&lt;/span> d &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">3.14159&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">long&lt;/span> &lt;span style="color:#ff7b72">double&lt;/span> ld &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">3.141592653589793&lt;/span>L;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Character
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">char&lt;/span> c &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#39;A&amp;#39;&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">unsigned&lt;/span> &lt;span style="color:#ff7b72">char&lt;/span> uc &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">255&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Boolean (C99)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;stdbool.h&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">bool&lt;/span> flag &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> true;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="size-information">Size Information&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;stdio.h&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;limits.h&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">main&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Size of int: %zu bytes&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, &lt;span style="color:#ff7b72">sizeof&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>));
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Size of long: %zu bytes&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, &lt;span style="color:#ff7b72">sizeof&lt;/span>(&lt;span style="color:#ff7b72">long&lt;/span>));
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Size of float: %zu bytes&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, &lt;span style="color:#ff7b72">sizeof&lt;/span>(&lt;span style="color:#ff7b72">float&lt;/span>));
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Size of double: %zu bytes&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, &lt;span style="color:#ff7b72">sizeof&lt;/span>(&lt;span style="color:#ff7b72">double&lt;/span>));
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;INT_MAX: %d&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, INT_MAX);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;INT_MIN: %d&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, INT_MIN);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="constants-and-macros">Constants and Macros&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;stdio.h&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#define PI 3.14159
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#define MAX_SIZE 100
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#define SQUARE(x) ((x) * (x))
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">const&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span> BUFFER_SIZE &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">1024&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Enumeration
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">enum&lt;/span> Color {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> RED,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> GREEN,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> BLUE
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">enum&lt;/span> Status {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ACTIVE &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> INACTIVE &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> PENDING &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span>&lt;span style="color:#a5d6ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>};
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="variables-and-scope">Variables and Scope&lt;/h2>
&lt;h3 id="variable-declaration">Variable Declaration&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> x; &lt;span style="color:#8b949e;font-style:italic">// Declaration
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> y &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Initialization
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> z &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Always initialize
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Multiple declarations
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> a &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span>, b &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">2&lt;/span>, c &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">3&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Storage classes
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">auto&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span> local_var &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Default for local variables
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">static&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span> static_var &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">20&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Retains value between calls
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">extern&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span> global_var; &lt;span style="color:#8b949e;font-style:italic">// Declared elsewhere
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">register&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span> fast_var &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">30&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Hint for compiler optimization
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="scope">Scope&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> global_var &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Global scope
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">function&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">static&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span> count &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Static local variable
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> count&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Count: %d&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, count);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">main&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">int&lt;/span> local_var &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">20&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Local scope
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">int&lt;/span> block_var &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">30&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Block scope
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Block var: %d&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, block_var);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// block_var is not accessible here
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="functions">Functions&lt;/h2>
&lt;h3 id="function-declaration-and-definition">Function Declaration and Definition&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Function prototype
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">add&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span> a, &lt;span style="color:#ff7b72">int&lt;/span> b);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">print_message&lt;/span>(&lt;span style="color:#ff7b72">void&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Function definition
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">add&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span> a, &lt;span style="color:#ff7b72">int&lt;/span> b) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> a &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> b;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">print_message&lt;/span>(&lt;span style="color:#ff7b72">void&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Hello from function!&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Function with no return value
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">swap&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>a, &lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>b) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">int&lt;/span> temp &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>a;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>a &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>b;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>b &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> temp;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="function-pointers">Function Pointers&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Function pointer declaration
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> (&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>operation)(&lt;span style="color:#ff7b72">int&lt;/span>, &lt;span style="color:#ff7b72">int&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Functions to point to
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">add&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span> a, &lt;span style="color:#ff7b72">int&lt;/span> b) { &lt;span style="color:#ff7b72">return&lt;/span> a &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> b; }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">multiply&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span> a, &lt;span style="color:#ff7b72">int&lt;/span> b) { &lt;span style="color:#ff7b72">return&lt;/span> a &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> b; }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">main&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> operation &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> add;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;5 + 3 = %d&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, &lt;span style="color:#d2a8ff;font-weight:bold">operation&lt;/span>(&lt;span style="color:#a5d6ff">5&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>));
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> operation &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> multiply;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;5 * 3 = %d&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, &lt;span style="color:#d2a8ff;font-weight:bold">operation&lt;/span>(&lt;span style="color:#a5d6ff">5&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>));
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="variadic-functions">Variadic Functions&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;stdarg.h&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">sum&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span> count, ...) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> va_list args;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">va_start&lt;/span>(args, count);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">int&lt;/span> total &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">for&lt;/span> (&lt;span style="color:#ff7b72">int&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>; i &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> count; i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> total &lt;span style="color:#ff7b72;font-weight:bold">+=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">va_arg&lt;/span>(args, &lt;span style="color:#ff7b72">int&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">va_end&lt;/span>(args);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> total;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">main&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Sum: %d&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, &lt;span style="color:#d2a8ff;font-weight:bold">sum&lt;/span>(&lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">10&lt;/span>, &lt;span style="color:#a5d6ff">20&lt;/span>, &lt;span style="color:#a5d6ff">30&lt;/span>));
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="control-structures">Control Structures&lt;/h2>
&lt;h3 id="conditionals">Conditionals&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// if-else
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">if&lt;/span> (x &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Positive&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>} &lt;span style="color:#ff7b72">else&lt;/span> &lt;span style="color:#ff7b72">if&lt;/span> (x &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Negative&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>} &lt;span style="color:#ff7b72">else&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Zero&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Ternary operator
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> result &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> (x &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>) &lt;span style="color:#ff7b72;font-weight:bold">?&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span>&lt;span style="color:#a5d6ff">1&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Switch statement
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">switch&lt;/span> (choice) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">case&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Option 1&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">break&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">case&lt;/span> &lt;span style="color:#a5d6ff">2&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Option 2&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">break&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">case&lt;/span> &lt;span style="color:#a5d6ff">3&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">case&lt;/span> &lt;span style="color:#a5d6ff">4&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Option 3 or 4&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">break&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">default&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Invalid option&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="loops">Loops&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// for loop
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span> (&lt;span style="color:#ff7b72">int&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>; i &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>; i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;%d &amp;#34;&lt;/span>, i);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// while loop
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">while&lt;/span> (i &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;%d &amp;#34;&lt;/span>, i);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// do-while loop
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> j &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">do&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;%d &amp;#34;&lt;/span>, j);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> j&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>} &lt;span style="color:#ff7b72">while&lt;/span> (j &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Loop control
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span> (&lt;span style="color:#ff7b72">int&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>; i &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>; i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> (i &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">5&lt;/span>) &lt;span style="color:#ff7b72">continue&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Skip iteration
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#ff7b72">if&lt;/span> (i &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">8&lt;/span>) &lt;span style="color:#ff7b72">break&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Exit loop
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;%d &amp;#34;&lt;/span>, i);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="arrays-and-strings">Arrays and Strings&lt;/h2>
&lt;h3 id="arrays">Arrays&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Array declaration and initialization
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> numbers[&lt;span style="color:#a5d6ff">5&lt;/span>] &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> values[] &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {&lt;span style="color:#a5d6ff">10&lt;/span>, &lt;span style="color:#a5d6ff">20&lt;/span>, &lt;span style="color:#a5d6ff">30&lt;/span>}; &lt;span style="color:#8b949e;font-style:italic">// Size inferred
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> matrix[&lt;span style="color:#a5d6ff">3&lt;/span>][&lt;span style="color:#a5d6ff">3&lt;/span>] &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {{&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>}, {&lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>, &lt;span style="color:#a5d6ff">6&lt;/span>}, {&lt;span style="color:#a5d6ff">7&lt;/span>, &lt;span style="color:#a5d6ff">8&lt;/span>, &lt;span style="color:#a5d6ff">9&lt;/span>}};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Array access
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span> (&lt;span style="color:#ff7b72">int&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>; i &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">5&lt;/span>; i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;%d &amp;#34;&lt;/span>, numbers[i]);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Array size
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> size &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72">sizeof&lt;/span>(numbers) &lt;span style="color:#ff7b72;font-weight:bold">/&lt;/span> &lt;span style="color:#ff7b72">sizeof&lt;/span>(numbers[&lt;span style="color:#a5d6ff">0&lt;/span>]);
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="strings">Strings&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;string.h&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// String declaration
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">char&lt;/span> str1[&lt;span style="color:#a5d6ff">20&lt;/span>] &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Hello&amp;#34;&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">char&lt;/span> str2[] &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;World&amp;#34;&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">char&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>str3 &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;C Programming&amp;#34;&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// String functions
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> len &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">strlen&lt;/span>(str1);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">strcpy&lt;/span>(str1, &lt;span style="color:#a5d6ff">&amp;#34;New string&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">strcat&lt;/span>(str1, &lt;span style="color:#a5d6ff">&amp;#34; appended&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> cmp &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">strcmp&lt;/span>(str1, str2);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// String input/output
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">char&lt;/span> buffer[&lt;span style="color:#a5d6ff">100&lt;/span>];
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Enter a string: &amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">fgets&lt;/span>(buffer, &lt;span style="color:#ff7b72">sizeof&lt;/span>(buffer), stdin);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;You entered: %s&amp;#34;&lt;/span>, buffer);
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="string-manipulation">String Manipulation&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;string.h&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;ctype.h&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Convert to uppercase
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">to_upper&lt;/span>(&lt;span style="color:#ff7b72">char&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>str) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">while&lt;/span> (&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>str) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>str &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">toupper&lt;/span>(&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>str);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> str&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Find substring
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">char&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">find_substr&lt;/span>(&lt;span style="color:#ff7b72">char&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>haystack, &lt;span style="color:#ff7b72">char&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>needle) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">strstr&lt;/span>(haystack, needle);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Split string
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">split_string&lt;/span>(&lt;span style="color:#ff7b72">char&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>str, &lt;span style="color:#ff7b72">char&lt;/span> delimiter) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">char&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>token &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">strtok&lt;/span>(str, &lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>delimiter);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">while&lt;/span> (token &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> NULL) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;%s&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, token);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> token &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">strtok&lt;/span>(NULL, &lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>delimiter);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="pointers">Pointers&lt;/h2>
&lt;h3 id="basic-pointers">Basic Pointers&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>ptr &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>x; &lt;span style="color:#8b949e;font-style:italic">// Pointer to x
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> value &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>ptr; &lt;span style="color:#8b949e;font-style:italic">// Dereference pointer
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Value: %d&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, value);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Address: %p&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, (&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>)ptr);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Null pointer
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>null_ptr &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> NULL;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> (null_ptr &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> NULL) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Pointer is null&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="pointer-arithmetic">Pointer Arithmetic&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> arr[] &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>ptr &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> arr; &lt;span style="color:#8b949e;font-style:italic">// Points to first element
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Pointer arithmetic
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>ptr&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Move to next element
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>ptr &lt;span style="color:#ff7b72;font-weight:bold">+=&lt;/span> &lt;span style="color:#a5d6ff">2&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Move 2 elements forward
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>ptr&lt;span style="color:#ff7b72;font-weight:bold">--&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Move to previous element
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Array traversal using pointers
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>start &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> arr;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>end &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> arr &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> &lt;span style="color:#a5d6ff">5&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">while&lt;/span> (start &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> end) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;%d &amp;#34;&lt;/span>, &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>start);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> start&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="pointers-and-functions">Pointers and Functions&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Pass by reference
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">increment&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>num) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> (&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>num)&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Return pointer from function
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">get_max&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>a, &lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>b) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> (&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>a &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>b) &lt;span style="color:#ff7b72;font-weight:bold">?&lt;/span> &lt;span style="color:#79c0ff;font-weight:bold">a&lt;/span> : b;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Array as function parameter
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">print_array&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span> arr[], &lt;span style="color:#ff7b72">int&lt;/span> size) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">for&lt;/span> (&lt;span style="color:#ff7b72">int&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>; i &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> size; i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;%d &amp;#34;&lt;/span>, arr[i]);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="double-pointers">Double Pointers&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>ptr &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>x;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">**&lt;/span>double_ptr &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>ptr;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Value: %d&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, &lt;span style="color:#ff7b72;font-weight:bold">**&lt;/span>double_ptr);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Address of x: %p&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, (&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>)ptr);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Address of ptr: %p&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, (&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>)double_ptr);
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="memory-management">Memory Management&lt;/h2>
&lt;h3 id="dynamic-memory-allocation">Dynamic Memory Allocation&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;stdlib.h&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// malloc - allocate memory
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>ptr &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> (&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>)&lt;span style="color:#d2a8ff;font-weight:bold">malloc&lt;/span>(&lt;span style="color:#a5d6ff">5&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> &lt;span style="color:#ff7b72">sizeof&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>));
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> (ptr &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> NULL) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Memory allocation failed&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Initialize allocated memory
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span> (&lt;span style="color:#ff7b72">int&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>; i &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">5&lt;/span>; i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ptr[i] &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// calloc - allocate and initialize to zero
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>arr &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> (&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>)&lt;span style="color:#d2a8ff;font-weight:bold">calloc&lt;/span>(&lt;span style="color:#a5d6ff">5&lt;/span>, &lt;span style="color:#ff7b72">sizeof&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>));
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// realloc - resize memory
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>ptr &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> (&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>)&lt;span style="color:#d2a8ff;font-weight:bold">realloc&lt;/span>(ptr, &lt;span style="color:#a5d6ff">10&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> &lt;span style="color:#ff7b72">sizeof&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>));
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// free - deallocate memory
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">free&lt;/span>(ptr);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">free&lt;/span>(arr);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ptr &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> NULL; &lt;span style="color:#8b949e;font-style:italic">// Avoid dangling pointer
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>arr &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> NULL;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="memory-management-best-practices">Memory Management Best Practices&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Check for allocation failure
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">safe_malloc&lt;/span>(&lt;span style="color:#ff7b72">size_t&lt;/span> size) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>ptr &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">malloc&lt;/span>(size);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> (ptr &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> NULL) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">fprintf&lt;/span>(stderr, &lt;span style="color:#a5d6ff">&amp;#34;Memory allocation failed&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">exit&lt;/span>(&lt;span style="color:#a5d6ff">1&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> ptr;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Always free allocated memory
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">process_data&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>data &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> (&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>)&lt;span style="color:#d2a8ff;font-weight:bold">malloc&lt;/span>(&lt;span style="color:#a5d6ff">100&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> &lt;span style="color:#ff7b72">sizeof&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>));
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> (data &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> NULL) &lt;span style="color:#ff7b72">return&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Process data...
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">free&lt;/span>(data);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> data &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> NULL;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="structures-and-unions">Structures and Unions&lt;/h2>
&lt;h3 id="structures">Structures&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Structure definition
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">struct&lt;/span> Person {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">char&lt;/span> name[&lt;span style="color:#a5d6ff">50&lt;/span>];
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">int&lt;/span> age;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">float&lt;/span> salary;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Structure usage
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">struct&lt;/span> Person person1 &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {&lt;span style="color:#a5d6ff">&amp;#34;John Doe&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">30&lt;/span>, &lt;span style="color:#a5d6ff">50000.0&lt;/span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">struct&lt;/span> Person person2;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Accessing members
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">strcpy&lt;/span>(person2.name, &lt;span style="color:#a5d6ff">&amp;#34;Jane Smith&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>person2.age &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">25&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>person2.salary &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">45000.0&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Pointer to structure
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">struct&lt;/span> Person &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>ptr &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>person1;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Name: %s&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, ptr&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>name);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Age: %d&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, ptr&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>age);
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="typedef">Typedef&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Define structure with typedef
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">typedef&lt;/span> &lt;span style="color:#ff7b72">struct&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">int&lt;/span> x;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">int&lt;/span> y;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>} Point;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Usage
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>Point p1 &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {&lt;span style="color:#a5d6ff">10&lt;/span>, &lt;span style="color:#a5d6ff">20&lt;/span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Point p2 &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {&lt;span style="color:#a5d6ff">0&lt;/span>}; &lt;span style="color:#8b949e;font-style:italic">// Initialize to zero
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Function with structure
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">double&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">distance&lt;/span>(Point p1, Point p2) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">int&lt;/span> dx &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> p1.x &lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span> p2.x;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">int&lt;/span> dy &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> p1.y &lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span> p2.y;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">sqrt&lt;/span>(dx&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>dx &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> dy&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>dy);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="unions">Unions&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">union&lt;/span> Data {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">int&lt;/span> i;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">float&lt;/span> f;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">char&lt;/span> str[&lt;span style="color:#a5d6ff">20&lt;/span>];
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">union&lt;/span> Data data;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>data.i &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Integer: %d&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, data.i);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>data.f &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">3.14&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Float: %.2f&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, data.f);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">strcpy&lt;/span>(data.str, &lt;span style="color:#a5d6ff">&amp;#34;Hello&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;String: %s&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, data.str);
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="bit-fields">Bit Fields&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">struct&lt;/span> Flags {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">unsigned&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#79c0ff;font-weight:bold">flag1&lt;/span> : &lt;span style="color:#a5d6ff">1&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">unsigned&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#79c0ff;font-weight:bold">flag2&lt;/span> : &lt;span style="color:#a5d6ff">1&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">unsigned&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#79c0ff;font-weight:bold">flag3&lt;/span> : &lt;span style="color:#a5d6ff">1&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">unsigned&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#79c0ff;font-weight:bold">reserved&lt;/span> : &lt;span style="color:#a5d6ff">5&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">struct&lt;/span> Flags flags &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {&lt;span style="color:#a5d6ff">0&lt;/span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>flags.flag1 &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>flags.flag2 &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>flags.flag3 &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span>;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="file-io">File I/O&lt;/h2>
&lt;h3 id="file-operations">File Operations&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;stdio.h&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Open file
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>FILE &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>file &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">fopen&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;input.txt&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;r&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> (file &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> NULL) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">perror&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Error opening file&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Read from file
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">char&lt;/span> buffer[&lt;span style="color:#a5d6ff">100&lt;/span>];
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">while&lt;/span> (&lt;span style="color:#d2a8ff;font-weight:bold">fgets&lt;/span>(buffer, &lt;span style="color:#ff7b72">sizeof&lt;/span>(buffer), file) &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> NULL) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;%s&amp;#34;&lt;/span>, buffer);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Close file
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">fclose&lt;/span>(file);
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="file-modes">File Modes&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// File modes
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>FILE &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>read_file &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">fopen&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;file.txt&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;r&amp;#34;&lt;/span>); &lt;span style="color:#8b949e;font-style:italic">// Read
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>FILE &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>write_file &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">fopen&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;file.txt&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;w&amp;#34;&lt;/span>); &lt;span style="color:#8b949e;font-style:italic">// Write (truncate)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>FILE &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>append_file &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">fopen&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;file.txt&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;a&amp;#34;&lt;/span>); &lt;span style="color:#8b949e;font-style:italic">// Append
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>FILE &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>read_write &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">fopen&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;file.txt&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;r+&amp;#34;&lt;/span>); &lt;span style="color:#8b949e;font-style:italic">// Read/Write
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>FILE &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>binary_file &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">fopen&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;file.bin&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;rb&amp;#34;&lt;/span>); &lt;span style="color:#8b949e;font-style:italic">// Binary read
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="formatted-io">Formatted I/O&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Writing formatted data
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>FILE &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>file &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">fopen&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;output.txt&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;w&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">fprintf&lt;/span>(file, &lt;span style="color:#a5d6ff">&amp;#34;Name: %s, Age: %d, Salary: %.2f&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">30&lt;/span>, &lt;span style="color:#a5d6ff">50000.0&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">fclose&lt;/span>(file);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Reading formatted data
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>FILE &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>file &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">fopen&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;input.txt&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;r&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">char&lt;/span> name[&lt;span style="color:#a5d6ff">50&lt;/span>];
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> age;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">float&lt;/span> salary;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">fscanf&lt;/span>(file, &lt;span style="color:#a5d6ff">&amp;#34;Name: %s, Age: %d, Salary: %f&amp;#34;&lt;/span>, name, &lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>age, &lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>salary);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">fclose&lt;/span>(file);
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="binary-io">Binary I/O&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Write binary data
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">struct&lt;/span> Person person &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {&lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">30&lt;/span>, &lt;span style="color:#a5d6ff">50000.0&lt;/span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>FILE &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>file &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">fopen&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;person.bin&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;wb&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">fwrite&lt;/span>(&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>person, &lt;span style="color:#ff7b72">sizeof&lt;/span>(&lt;span style="color:#ff7b72">struct&lt;/span> Person), &lt;span style="color:#a5d6ff">1&lt;/span>, file);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">fclose&lt;/span>(file);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Read binary data
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">struct&lt;/span> Person read_person;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>FILE &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>file &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">fopen&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;person.bin&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;rb&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">fread&lt;/span>(&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>read_person, &lt;span style="color:#ff7b72">sizeof&lt;/span>(&lt;span style="color:#ff7b72">struct&lt;/span> Person), &lt;span style="color:#a5d6ff">1&lt;/span>, file);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">fclose&lt;/span>(file);
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="preprocessor">Preprocessor&lt;/h2>
&lt;h3 id="macros">Macros&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#define MAX(a, b) ((a) &amp;gt; (b) ? (a) : (b))
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#define MIN(a, b) ((a) &amp;lt; (b) ? (a) : (b))
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#define SWAP(a, b) do { \
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic"> typeof(a) temp = a; \
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic"> a = b; \
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic"> b = temp; \
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">} while(0)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Conditional compilation
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#ifdef DEBUG
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#define DBG_PRINT(x) printf(&amp;#34;DEBUG: %s\n&amp;#34;, x)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#else
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#define DBG_PRINT(x)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#endif
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Predefined macros
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;File: %s&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, __FILE__);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Line: %d&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, __LINE__);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Function: %s&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, __func__);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Date: %s&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, __DATE__);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Time: %s&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, __TIME__);
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="header-guards">Header Guards&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// header.h
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#ifndef HEADER_H
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#define HEADER_H
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Header content here
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#endif &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// HEADER_H
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="include-files">Include Files&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;stdio.h&amp;gt; // Standard library&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;stdlib.h&amp;gt; // Standard library&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;string.h&amp;gt; // String functions&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;math.h&amp;gt; // Math functions&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;time.h&amp;gt; // Time functions&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;#34;myheader.h&amp;#34; // User-defined header&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="error-handling">Error Handling&lt;/h2>
&lt;h3 id="error-codes">Error Codes&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;errno.h&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">divide&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span> a, &lt;span style="color:#ff7b72">int&lt;/span> b, &lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>result) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> (b &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span>&lt;span style="color:#a5d6ff">1&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Error code
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>result &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> a &lt;span style="color:#ff7b72;font-weight:bold">/&lt;/span> b;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Success
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">main&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">int&lt;/span> result;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> (&lt;span style="color:#d2a8ff;font-weight:bold">divide&lt;/span>(&lt;span style="color:#a5d6ff">10&lt;/span>, &lt;span style="color:#a5d6ff">0&lt;/span>, &lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>result) &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Error: Division by zero&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="error-messages">Error Messages&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;errno.h&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;string.h&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>FILE &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>file &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">fopen&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;nonexistent.txt&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;r&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> (file &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> NULL) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">fprintf&lt;/span>(stderr, &lt;span style="color:#a5d6ff">&amp;#34;Error opening file: %s&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, &lt;span style="color:#d2a8ff;font-weight:bold">strerror&lt;/span>(errno));
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="assert">Assert&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;assert.h&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">process_array&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>arr, &lt;span style="color:#ff7b72">int&lt;/span> size) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">assert&lt;/span>(arr &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> NULL);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">assert&lt;/span>(size &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Process array...
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="standard-library">Standard Library&lt;/h2>
&lt;h3 id="common-functions">Common Functions&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// String functions
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;string.h&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">strlen&lt;/span>(str) &lt;span style="color:#8b949e;font-style:italic">// String length
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">strcpy&lt;/span>(dest, src) &lt;span style="color:#8b949e;font-style:italic">// Copy string
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">strcat&lt;/span>(dest, src) &lt;span style="color:#8b949e;font-style:italic">// Concatenate strings
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">strcmp&lt;/span>(str1, str2) &lt;span style="color:#8b949e;font-style:italic">// Compare strings
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">strstr&lt;/span>(haystack, needle) &lt;span style="color:#8b949e;font-style:italic">// Find substring
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Memory functions
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">memset&lt;/span>(ptr, value, size) &lt;span style="color:#8b949e;font-style:italic">// Set memory
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">memcpy&lt;/span>(dest, src, size) &lt;span style="color:#8b949e;font-style:italic">// Copy memory
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">memmove&lt;/span>(dest, src, size) &lt;span style="color:#8b949e;font-style:italic">// Move memory
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">memcmp&lt;/span>(ptr1, ptr2, size) &lt;span style="color:#8b949e;font-style:italic">// Compare memory
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Math functions
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;math.h&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">sqrt&lt;/span>(x) &lt;span style="color:#8b949e;font-style:italic">// Square root
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">pow&lt;/span>(x, y) &lt;span style="color:#8b949e;font-style:italic">// Power
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">sin&lt;/span>(x) &lt;span style="color:#8b949e;font-style:italic">// Sine
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">cos&lt;/span>(x) &lt;span style="color:#8b949e;font-style:italic">// Cosine
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">log&lt;/span>(x) &lt;span style="color:#8b949e;font-style:italic">// Natural logarithm
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="character-functions">Character Functions&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;ctype.h&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">isalpha&lt;/span>(c) &lt;span style="color:#8b949e;font-style:italic">// Is alphabetic
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">isdigit&lt;/span>(c) &lt;span style="color:#8b949e;font-style:italic">// Is digit
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">isalnum&lt;/span>(c) &lt;span style="color:#8b949e;font-style:italic">// Is alphanumeric
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">isspace&lt;/span>(c) &lt;span style="color:#8b949e;font-style:italic">// Is whitespace
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">isupper&lt;/span>(c) &lt;span style="color:#8b949e;font-style:italic">// Is uppercase
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">islower&lt;/span>(c) &lt;span style="color:#8b949e;font-style:italic">// Is lowercase
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">toupper&lt;/span>(c) &lt;span style="color:#8b949e;font-style:italic">// Convert to uppercase
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">tolower&lt;/span>(c) &lt;span style="color:#8b949e;font-style:italic">// Convert to lowercase
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="common-patterns">Common Patterns&lt;/h2>
&lt;h3 id="linked-list">Linked List&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">typedef&lt;/span> &lt;span style="color:#ff7b72">struct&lt;/span> Node {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">int&lt;/span> data;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">struct&lt;/span> Node &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>next;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>} Node;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Node&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">create_node&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span> data) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Node &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>node &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> (Node&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>)&lt;span style="color:#d2a8ff;font-weight:bold">malloc&lt;/span>(&lt;span style="color:#ff7b72">sizeof&lt;/span>(Node));
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> node&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>data &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> data;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> node&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>next &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> NULL;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> node;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">insert_at_head&lt;/span>(Node &lt;span style="color:#ff7b72;font-weight:bold">**&lt;/span>head, &lt;span style="color:#ff7b72">int&lt;/span> data) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Node &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>new_node &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">create_node&lt;/span>(data);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> new_node&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>next &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>head;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>head &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> new_node;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">print_list&lt;/span>(Node &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>head) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">while&lt;/span> (head &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> NULL) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;%d -&amp;gt; &amp;#34;&lt;/span>, head&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>data);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> head &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> head&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>next;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;NULL&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="generic-programming-with-void">Generic Programming with void*&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Generic stack implementation
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">typedef&lt;/span> &lt;span style="color:#ff7b72">struct&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">**&lt;/span>data;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">int&lt;/span> top;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">int&lt;/span> capacity;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">size_t&lt;/span> element_size;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>} Stack;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Stack&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">create_stack&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span> capacity, &lt;span style="color:#ff7b72">size_t&lt;/span> element_size) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Stack &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>stack &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> (Stack&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>)&lt;span style="color:#d2a8ff;font-weight:bold">malloc&lt;/span>(&lt;span style="color:#ff7b72">sizeof&lt;/span>(Stack));
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> stack&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>data &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> (&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">**&lt;/span>)&lt;span style="color:#d2a8ff;font-weight:bold">malloc&lt;/span>(capacity &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> &lt;span style="color:#ff7b72">sizeof&lt;/span>(&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>));
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> stack&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>top &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span>&lt;span style="color:#a5d6ff">1&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> stack&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>capacity &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> capacity;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> stack&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>element_size &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> element_size;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> stack;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">push&lt;/span>(Stack &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>stack, &lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>element) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> (stack&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>top &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;=&lt;/span> stack&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>capacity &lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Stack full
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>copy &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">malloc&lt;/span>(stack&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>element_size);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">memcpy&lt;/span>(copy, element, stack&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>element_size);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> stack&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>data[&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>stack&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>top] &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> copy;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Success
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="debugging">Debugging&lt;/h2>
&lt;h3 id="gdb-usage">GDB Usage&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Compile with debug information&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gcc -g -o program program.c
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Run with GDB&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gdb ./program
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># GDB commands&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">(&lt;/span>gdb&lt;span style="color:#ff7b72;font-weight:bold">)&lt;/span> break main &lt;span style="color:#8b949e;font-style:italic"># Set breakpoint&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">(&lt;/span>gdb&lt;span style="color:#ff7b72;font-weight:bold">)&lt;/span> run &lt;span style="color:#8b949e;font-style:italic"># Run program&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">(&lt;/span>gdb&lt;span style="color:#ff7b72;font-weight:bold">)&lt;/span> next &lt;span style="color:#8b949e;font-style:italic"># Next line&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">(&lt;/span>gdb&lt;span style="color:#ff7b72;font-weight:bold">)&lt;/span> step &lt;span style="color:#8b949e;font-style:italic"># Step into function&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">(&lt;/span>gdb&lt;span style="color:#ff7b72;font-weight:bold">)&lt;/span> print variable &lt;span style="color:#8b949e;font-style:italic"># Print variable value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">(&lt;/span>gdb&lt;span style="color:#ff7b72;font-weight:bold">)&lt;/span> &lt;span style="color:#ff7b72">continue&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Continue execution&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">(&lt;/span>gdb&lt;span style="color:#ff7b72;font-weight:bold">)&lt;/span> quit &lt;span style="color:#8b949e;font-style:italic"># Exit GDB&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="debug-prints">Debug Prints&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#ifdef DEBUG
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#define DEBUG_PRINT(fmt, ...) \
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic"> fprintf(stderr, &amp;#34;DEBUG: %s:%d: &amp;#34; fmt, __FILE__, __LINE__, ##__VA_ARGS__)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#else
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#define DEBUG_PRINT(fmt, ...)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#endif
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">main&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">int&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">DEBUG_PRINT&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;x = %d&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, x);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="best-practices">Best Practices&lt;/h2>
&lt;h3 id="code-organization">Code Organization&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Function prototypes at top
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">add&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span> a, &lt;span style="color:#ff7b72">int&lt;/span> b);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">print_array&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span> arr[], &lt;span style="color:#ff7b72">int&lt;/span> size);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Constants and macros
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#define MAX_SIZE 100
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">const&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span> BUFFER_SIZE &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">1024&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Main function
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">main&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Variable declarations at top of function
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span> result;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">int&lt;/span> numbers[MAX_SIZE];
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Code logic
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> result &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">add&lt;/span>(&lt;span style="color:#a5d6ff">5&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Function implementations
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">add&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span> a, &lt;span style="color:#ff7b72">int&lt;/span> b) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> a &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> b;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="memory-safety">Memory Safety&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Always check malloc return
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>ptr &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> (&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>)&lt;span style="color:#d2a8ff;font-weight:bold">malloc&lt;/span>(&lt;span style="color:#ff7b72">sizeof&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>) &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> (ptr &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> NULL) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Handle allocation failure
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span>&lt;span style="color:#a5d6ff">1&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Always free allocated memory
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">free&lt;/span>(ptr);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ptr &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> NULL; &lt;span style="color:#8b949e;font-style:italic">// Avoid dangling pointer
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use const for read-only data
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">print_string&lt;/span>(&lt;span style="color:#ff7b72">const&lt;/span> &lt;span style="color:#ff7b72">char&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>str) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;%s&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, str);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="error-handling-1">Error Handling&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Return error codes
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">safe_divide&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span> a, &lt;span style="color:#ff7b72">int&lt;/span> b, &lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>result) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> (b &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span>&lt;span style="color:#a5d6ff">1&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Error
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>result &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> a &lt;span style="color:#ff7b72;font-weight:bold">/&lt;/span> b;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Success
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Check return values
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">if&lt;/span> (&lt;span style="color:#d2a8ff;font-weight:bold">safe_divide&lt;/span>(&lt;span style="color:#a5d6ff">10&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>result) &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Error in division&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="performance-tips">Performance Tips&lt;/h2>
&lt;h3 id="optimization">Optimization&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use appropriate data types
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">uint8_t&lt;/span> small_number &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">255&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Instead of int for small values
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use register hint for frequently used variables
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">register&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span> i;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> (i &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>; i &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">1000000&lt;/span>; i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Loop body
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Minimize function calls in loops
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> len &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">strlen&lt;/span>(str);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> (&lt;span style="color:#ff7b72">int&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>; i &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> len; i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Process str[i]
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="memory-optimization">Memory Optimization&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Align structures for better performance
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">struct&lt;/span> AlignedStruct {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">char&lt;/span> a; &lt;span style="color:#8b949e;font-style:italic">// 1 byte
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#ff7b72">char&lt;/span> pad[&lt;span style="color:#a5d6ff">3&lt;/span>]; &lt;span style="color:#8b949e;font-style:italic">// 3 bytes padding
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span> b; &lt;span style="color:#8b949e;font-style:italic">// 4 bytes
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#ff7b72">double&lt;/span> c; &lt;span style="color:#8b949e;font-style:italic">// 8 bytes
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use bit fields for flags
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">struct&lt;/span> Flags {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">unsigned&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#79c0ff;font-weight:bold">flag1&lt;/span> : &lt;span style="color:#a5d6ff">1&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">unsigned&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#79c0ff;font-weight:bold">flag2&lt;/span> : &lt;span style="color:#a5d6ff">1&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">unsigned&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#79c0ff;font-weight:bold">flag3&lt;/span> : &lt;span style="color:#a5d6ff">1&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">unsigned&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#79c0ff;font-weight:bold">reserved&lt;/span> : &lt;span style="color:#a5d6ff">5&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>};
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="build-systems">Build Systems&lt;/h2>
&lt;h3 id="makefile">Makefile&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-makefile" data-lang="makefile">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#79c0ff">CC&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> gcc
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#79c0ff">CFLAGS&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> -Wall -Wextra -std&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>c99 -g
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#79c0ff">TARGET&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> myprogram
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#79c0ff">SOURCES&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> main.c utils.c
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#79c0ff">OBJECTS&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72">$(&lt;/span>SOURCES:.c&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>.o&lt;span style="color:#ff7b72">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">$(TARGET)&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span> &lt;span style="color:#ff7b72">$(&lt;/span>&lt;span style="color:#79c0ff">OBJECTS&lt;/span>&lt;span style="color:#ff7b72">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	&lt;span style="color:#ff7b72">$(&lt;/span>CC&lt;span style="color:#ff7b72">)&lt;/span> &lt;span style="color:#ff7b72">$(&lt;/span>OBJECTS&lt;span style="color:#ff7b72">)&lt;/span> -o &lt;span style="color:#ff7b72">$(&lt;/span>TARGET&lt;span style="color:#ff7b72">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">%.o&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span> %.c
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	&lt;span style="color:#ff7b72">$(&lt;/span>CC&lt;span style="color:#ff7b72">)&lt;/span> &lt;span style="color:#ff7b72">$(&lt;/span>CFLAGS&lt;span style="color:#ff7b72">)&lt;/span> -c $&amp;lt; -o &lt;span style="color:#79c0ff">$@&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">clean&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	rm -f &lt;span style="color:#ff7b72">$(&lt;/span>OBJECTS&lt;span style="color:#ff7b72">)&lt;/span> &lt;span style="color:#ff7b72">$(&lt;/span>TARGET&lt;span style="color:#ff7b72">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">.PHONY&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span> clean
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="cmake">CMake&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cmake" data-lang="cmake">&lt;span style="display:flex;">&lt;span>cmake_minimum_required(&lt;span style="color:#a5d6ff">VERSION&lt;/span> &lt;span style="color:#a5d6ff">3.10&lt;/span>)&lt;span style="color:#f85149">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f85149">&lt;/span>project(&lt;span style="color:#a5d6ff">MyProject&lt;/span> &lt;span style="color:#a5d6ff">C&lt;/span>)&lt;span style="color:#f85149">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f85149">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f85149">&lt;/span>set(&lt;span style="color:#a5d6ff">CMAKE_C_STANDARD&lt;/span> &lt;span style="color:#a5d6ff">99&lt;/span>)&lt;span style="color:#f85149">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f85149">&lt;/span>set(&lt;span style="color:#a5d6ff">CMAKE_C_FLAGS&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;${CMAKE_C_FLAGS} -Wall -Wextra&amp;#34;&lt;/span>)&lt;span style="color:#f85149">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f85149">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f85149">&lt;/span>add_executable(&lt;span style="color:#a5d6ff">myprogram&lt;/span> &lt;span style="color:#a5d6ff">main.c&lt;/span> &lt;span style="color:#a5d6ff">utils.c&lt;/span>)&lt;span style="color:#f85149">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f85149">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f85149">&lt;/span>&lt;span style="color:#8b949e;font-style:italic"># Link math library
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>target_link_libraries(&lt;span style="color:#a5d6ff">myprogram&lt;/span> &lt;span style="color:#a5d6ff">m&lt;/span>)&lt;span style="color:#f85149">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="quick-reference">Quick Reference&lt;/h2>
&lt;h3 id="format-specifiers">Format Specifiers&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">%&lt;/span>d &lt;span style="color:#8b949e;font-style:italic">// int
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">%&lt;/span>ld &lt;span style="color:#8b949e;font-style:italic">// long
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">%&lt;/span>u &lt;span style="color:#8b949e;font-style:italic">// unsigned int
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">%&lt;/span>f &lt;span style="color:#8b949e;font-style:italic">// float
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">%&lt;/span>lf &lt;span style="color:#8b949e;font-style:italic">// double
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">%&lt;/span>c &lt;span style="color:#8b949e;font-style:italic">// char
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">%&lt;/span>s &lt;span style="color:#8b949e;font-style:italic">// string
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">%&lt;/span>p &lt;span style="color:#8b949e;font-style:italic">// pointer
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">%&lt;/span>x &lt;span style="color:#8b949e;font-style:italic">// hexadecimal
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">%&lt;/span>o &lt;span style="color:#8b949e;font-style:italic">// octal
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">%&lt;/span>zu &lt;span style="color:#8b949e;font-style:italic">// size_t
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="common-headers">Common Headers&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;stdio.h&amp;gt; // Input/output&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;stdlib.h&amp;gt; // Memory management, utilities&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;string.h&amp;gt; // String functions&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;math.h&amp;gt; // Mathematical functions&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;time.h&amp;gt; // Time functions&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;ctype.h&amp;gt; // Character functions&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;errno.h&amp;gt; // Error handling&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;assert.h&amp;gt; // Assertions&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="operators">Operators&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-c" data-lang="c">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Arithmetic
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">/&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">%&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Comparison
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;=&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Logical
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&amp;amp;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">||&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">!&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Bitwise
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">|&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">^&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">~&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Assignment
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">+=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">-=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">/=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">%=&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Increment/Decrement
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">--&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Member access
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>. &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Ternary
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">?&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="see-also">See Also&lt;/h2>
&lt;ul>
&lt;li>&lt;code>man gcc&lt;/code> - GCC compiler manual&lt;/li>
&lt;li>&lt;code>man gdb&lt;/code> - GNU Debugger manual&lt;/li>
&lt;li>&lt;a href="https://en.cppreference.com/w/c">C Reference&lt;/a> - Comprehensive C reference&lt;/li>
&lt;li>&lt;a href="https://en.wikipedia.org/wiki/The_C_Programming_Language">The C Programming Language&lt;/a> - K&amp;amp;R book&lt;/li>
&lt;li>&lt;code>splint&lt;/code> - Static code analysis tool&lt;/li>
&lt;li>&lt;code>valgrind&lt;/code> - Memory debugging tool&lt;/li>
&lt;/ul></description></item><item><title>C++</title><link>http://qref.eknath.dev/programming/cpp/</link><pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate><guid>http://qref.eknath.dev/programming/cpp/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>C++ is a general-purpose programming language that supports procedural, object-oriented, and generic programming. It&amp;rsquo;s widely used for system programming, game development, embedded systems, and high-performance applications.&lt;/p>
&lt;h2 id="installation">Installation&lt;/h2>
&lt;h3 id="compilers">Compilers&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># GCC (GNU Compiler Collection)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo apt install g++ &lt;span style="color:#8b949e;font-style:italic"># Ubuntu/Debian&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>brew install gcc &lt;span style="color:#8b949e;font-style:italic"># macOS&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo yum install gcc-c++ &lt;span style="color:#8b949e;font-style:italic"># CentOS/RHEL&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Clang&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo apt install clang &lt;span style="color:#8b949e;font-style:italic"># Ubuntu/Debian&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>brew install llvm &lt;span style="color:#8b949e;font-style:italic"># macOS&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Microsoft Visual Studio (Windows)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Download from https://visualstudio.microsoft.com/&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="build-tools">Build Tools&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># CMake&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo apt install cmake &lt;span style="color:#8b949e;font-style:italic"># Ubuntu/Debian&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>brew install cmake &lt;span style="color:#8b949e;font-style:italic"># macOS&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Make&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo apt install make &lt;span style="color:#8b949e;font-style:italic"># Usually pre-installed&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="basic-syntax">Basic Syntax&lt;/h2>
&lt;h3 id="hello-world">Hello World&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;iostream&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">main&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Hello, World!&amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="compilation">Compilation&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Basic compilation&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>g++ -o program program.cpp
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># With debugging info&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>g++ -g -o program program.cpp
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># With optimization&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>g++ -O2 -o program program.cpp
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># C++ standard version&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>g++ -std&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>c++17 -o program program.cpp
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="data-types">Data Types&lt;/h2>
&lt;h3 id="primitive-types">Primitive Types&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Integer types
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> num &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">42&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">short&lt;/span> s &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">long&lt;/span> l &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">1000000L&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">long&lt;/span> &lt;span style="color:#ff7b72">long&lt;/span> ll &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">1000000000LL&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Unsigned types
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">unsigned&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span> u &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">42u&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">unsigned&lt;/span> &lt;span style="color:#ff7b72">long&lt;/span> ul &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">1000000UL&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Floating point
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">float&lt;/span> f &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">3.14f&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">double&lt;/span> d &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">3.14159&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">long&lt;/span> &lt;span style="color:#ff7b72">double&lt;/span> ld &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">3.141592653589793&lt;/span>L;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Character types
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">char&lt;/span> c &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#39;A&amp;#39;&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">wchar_t&lt;/span> wc &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#79c0ff">L&lt;/span>&lt;span style="color:#a5d6ff">&amp;#39;A&amp;#39;&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">char16_t&lt;/span> c16 &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> u&lt;span style="color:#a5d6ff">&amp;#39;A&amp;#39;&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">char32_t&lt;/span> c32 &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> U&lt;span style="color:#a5d6ff">&amp;#39;A&amp;#39;&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Boolean
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">bool&lt;/span> flag &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> true;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Auto type deduction
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">auto&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">42&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// int
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">auto&lt;/span> y &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">3.14&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// double
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">auto&lt;/span> z &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;hello&amp;#34;&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// const char*
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="constants">Constants&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">const&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span> MAX_SIZE &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">100&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">constexpr&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span> SIZE &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Enumeration
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">enum&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Color&lt;/span> { RED, GREEN, BLUE };
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">enum&lt;/span> &lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Status&lt;/span> { ACTIVE, INACTIVE, PENDING };
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Using enums
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>Color c &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> RED;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Status s &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> Status&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>ACTIVE;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="variables-and-scope">Variables and Scope&lt;/h2>
&lt;h3 id="variable-declaration">Variable Declaration&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> x; &lt;span style="color:#8b949e;font-style:italic">// Declaration
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> y &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Initialization
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> z{&lt;span style="color:#a5d6ff">15&lt;/span>}; &lt;span style="color:#8b949e;font-style:italic">// Uniform initialization
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">a&lt;/span>(&lt;span style="color:#a5d6ff">20&lt;/span>); &lt;span style="color:#8b949e;font-style:italic">// Direct initialization
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Multiple declarations
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> m &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span>, n &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">2&lt;/span>, p &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">3&lt;/span>;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="scope">Scope&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> global_var &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Global scope
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">main&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">int&lt;/span> local_var &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">20&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Local scope
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">int&lt;/span> block_var &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">30&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Block scope
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// block_var is accessible here
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// block_var is not accessible here
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="functions">Functions&lt;/h2>
&lt;h3 id="function-declaration">Function Declaration&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Function prototype
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">add&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span> a, &lt;span style="color:#ff7b72">int&lt;/span> b);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Function definition
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">add&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span> a, &lt;span style="color:#ff7b72">int&lt;/span> b) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> a &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> b;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Function with default parameters
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">multiply&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span> a, &lt;span style="color:#ff7b72">int&lt;/span> b &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> a &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> b;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Function overloading
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">max&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span> a, &lt;span style="color:#ff7b72">int&lt;/span> b) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> (a &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> b) &lt;span style="color:#ff7b72;font-weight:bold">?&lt;/span> &lt;span style="color:#79c0ff;font-weight:bold">a&lt;/span> : b;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">double&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">max&lt;/span>(&lt;span style="color:#ff7b72">double&lt;/span> a, &lt;span style="color:#ff7b72">double&lt;/span> b) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> (a &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> b) &lt;span style="color:#ff7b72;font-weight:bold">?&lt;/span> &lt;span style="color:#79c0ff;font-weight:bold">a&lt;/span> : b;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="advanced-functions">Advanced Functions&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Function templates
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">template&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">typename&lt;/span> T&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>T maximum(T a, T b) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> (a &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> b) &lt;span style="color:#ff7b72;font-weight:bold">?&lt;/span> &lt;span style="color:#79c0ff;font-weight:bold">a&lt;/span> : b;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Lambda functions
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">auto&lt;/span> lambda &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> [](&lt;span style="color:#ff7b72">int&lt;/span> x, &lt;span style="color:#ff7b72">int&lt;/span> y) { &lt;span style="color:#ff7b72">return&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> y; };
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> result &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> lambda(&lt;span style="color:#a5d6ff">5&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Lambda with capture
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> multiplier &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">auto&lt;/span> multiply_by &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> [multiplier](&lt;span style="color:#ff7b72">int&lt;/span> x) { &lt;span style="color:#ff7b72">return&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> multiplier; };
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="control-structures">Control Structures&lt;/h2>
&lt;h3 id="conditionals">Conditionals&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// if-else
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">if&lt;/span> (x &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Positive&amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>} &lt;span style="color:#ff7b72">else&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">if&lt;/span> (x &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Negative&amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>} &lt;span style="color:#ff7b72">else&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Zero&amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Ternary operator
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> result &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> (x &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>) &lt;span style="color:#ff7b72;font-weight:bold">?&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span>&lt;span style="color:#a5d6ff">1&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Switch statement
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">switch&lt;/span> (choice) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">case&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Option 1&amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">break&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">case&lt;/span> &lt;span style="color:#a5d6ff">2&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Option 2&amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">break&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">default&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Invalid option&amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="loops">Loops&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// for loop
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span> (&lt;span style="color:#ff7b72">int&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>; i &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>; i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34; &amp;#34;&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Range-based for loop
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>vector&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> numbers &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> (&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#79c0ff;font-weight:bold">num&lt;/span> : numbers) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> num &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34; &amp;#34;&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// while loop
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">while&lt;/span> (i &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34; &amp;#34;&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// do-while loop
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> j &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">do&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> j &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34; &amp;#34;&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> j&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>} &lt;span style="color:#ff7b72">while&lt;/span> (j &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>);
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="pointers-and-references">Pointers and References&lt;/h2>
&lt;h3 id="pointers">Pointers&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> ptr &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>x; &lt;span style="color:#8b949e;font-style:italic">// Pointer to x
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> value &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>ptr; &lt;span style="color:#8b949e;font-style:italic">// Dereference pointer
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Dynamic memory allocation
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> arr &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72">new&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span>[&lt;span style="color:#a5d6ff">10&lt;/span>]; &lt;span style="color:#8b949e;font-style:italic">// Allocate array
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">delete&lt;/span>[] arr; &lt;span style="color:#8b949e;font-style:italic">// Free memory
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> num &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72">new&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span>(&lt;span style="color:#a5d6ff">42&lt;/span>); &lt;span style="color:#8b949e;font-style:italic">// Allocate single int
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">delete&lt;/span> num; &lt;span style="color:#8b949e;font-style:italic">// Free memory
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="references">References&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span> ref &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> x; &lt;span style="color:#8b949e;font-style:italic">// Reference to x
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>ref &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">20&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Changes x to 20
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Function parameters
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">swap&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span> a, &lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span> b) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">int&lt;/span> temp &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> a;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> a &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> b;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> b &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> temp;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="smart-pointers">Smart Pointers&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;memory&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// unique_ptr
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>unique_ptr&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> ptr1 &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>make_unique&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>(&lt;span style="color:#a5d6ff">42&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// shared_ptr
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>shared_ptr&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> ptr2 &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>make_shared&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>(&lt;span style="color:#a5d6ff">42&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// weak_ptr
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>weak_ptr&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> weak_ptr &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> ptr2;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="object-oriented-programming">Object-Oriented Programming&lt;/h2>
&lt;h3 id="classes-and-objects">Classes and Objects&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Rectangle&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">double&lt;/span> width, height;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Constructor
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> Rectangle(&lt;span style="color:#ff7b72">double&lt;/span> w, &lt;span style="color:#ff7b72">double&lt;/span> h) &lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span> width(w), height(h) {}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Default constructor
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> Rectangle() &lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span> width(&lt;span style="color:#a5d6ff">0&lt;/span>), height(&lt;span style="color:#a5d6ff">0&lt;/span>) {}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Copy constructor
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> Rectangle(&lt;span style="color:#ff7b72">const&lt;/span> Rectangle&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span> other) 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span> width(other.width), height(other.height) {}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Destructor
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">~&lt;/span>Rectangle() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Cleanup code
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Member functions
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#ff7b72">double&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">area&lt;/span>() &lt;span style="color:#ff7b72">const&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> width &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> height;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">setDimensions&lt;/span>(&lt;span style="color:#ff7b72">double&lt;/span> w, &lt;span style="color:#ff7b72">double&lt;/span> h) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> width &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> w;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> height &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> h;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Getters
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#ff7b72">double&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">getWidth&lt;/span>() &lt;span style="color:#ff7b72">const&lt;/span> { &lt;span style="color:#ff7b72">return&lt;/span> width; }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">double&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">getHeight&lt;/span>() &lt;span style="color:#ff7b72">const&lt;/span> { &lt;span style="color:#ff7b72">return&lt;/span> height; }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Usage
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>Rectangle &lt;span style="color:#d2a8ff;font-weight:bold">rect&lt;/span>(&lt;span style="color:#a5d6ff">5.0&lt;/span>, &lt;span style="color:#a5d6ff">3.0&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">double&lt;/span> area &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> rect.area();
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="inheritance">Inheritance&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Base class
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Shape&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">protected&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>string color;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Shape(&lt;span style="color:#ff7b72">const&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>string&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span> c) &lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span> color(c) {}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">virtual&lt;/span> &lt;span style="color:#ff7b72">double&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">area&lt;/span>() &lt;span style="color:#ff7b72">const&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Pure virtual function
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#ff7b72">virtual&lt;/span> &lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">draw&lt;/span>() &lt;span style="color:#ff7b72">const&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Drawing a &amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> color &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34; shape&amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">virtual&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">~&lt;/span>Shape() &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72">default&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Virtual destructor
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Derived class
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Circle&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span> &lt;span style="color:#ff7b72">public&lt;/span> Shape {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">double&lt;/span> radius;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Circle(&lt;span style="color:#ff7b72">double&lt;/span> r, &lt;span style="color:#ff7b72">const&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>string&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span> c) &lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span> Shape(c), radius(r) {}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">double&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">area&lt;/span>() &lt;span style="color:#ff7b72">const&lt;/span> &lt;span style="color:#ff7b72">override&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">3.14159&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> radius &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> radius;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">draw&lt;/span>() &lt;span style="color:#ff7b72">const&lt;/span> &lt;span style="color:#ff7b72">override&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Drawing a &amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> color &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34; circle&amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>};
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="polymorphism">Polymorphism&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Virtual functions
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Animal&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">virtual&lt;/span> &lt;span style="color:#ff7b72">void&lt;/span> makeSound() &lt;span style="color:#ff7b72">const&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Some generic animal sound&amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">virtual&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">~&lt;/span>Animal() &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72">default&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Dog&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span> &lt;span style="color:#ff7b72">public&lt;/span> Animal {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">void&lt;/span> makeSound() &lt;span style="color:#ff7b72">const&lt;/span> &lt;span style="color:#ff7b72">override&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Woof!&amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Cat&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span> &lt;span style="color:#ff7b72">public&lt;/span> Animal {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">void&lt;/span> makeSound() &lt;span style="color:#ff7b72">const&lt;/span> &lt;span style="color:#ff7b72">override&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Meow!&amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Usage
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>vector&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>unique_ptr&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>Animal&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&amp;gt;&lt;/span> animals;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>animals.push_back(std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>make_unique&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>Dog&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>());
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>animals.push_back(std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>make_unique&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>Cat&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>());
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> (&lt;span style="color:#ff7b72">const&lt;/span> &lt;span style="color:#ff7b72">auto&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span> &lt;span style="color:#79c0ff;font-weight:bold">animal&lt;/span> : animals) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> animal&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>makeSound(); &lt;span style="color:#8b949e;font-style:italic">// Polymorphic call
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="standard-template-library-stl">Standard Template Library (STL)&lt;/h2>
&lt;h3 id="containers">Containers&lt;/h3>
&lt;h4 id="vector">Vector&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;vector&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>vector&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> v &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>v.push_back(&lt;span style="color:#a5d6ff">6&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>v.pop_back();
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> size &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> v.size();
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> element &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> v[&lt;span style="color:#a5d6ff">0&lt;/span>];
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="list">List&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;list&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>list&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> l &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>l.push_front(&lt;span style="color:#a5d6ff">0&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>l.push_back(&lt;span style="color:#a5d6ff">4&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>l.remove(&lt;span style="color:#a5d6ff">2&lt;/span>);
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="map">Map&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;map&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>map&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>string, &lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> m;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>m[&lt;span style="color:#a5d6ff">&amp;#34;apple&amp;#34;&lt;/span>] &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">5&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>m[&lt;span style="color:#a5d6ff">&amp;#34;banana&amp;#34;&lt;/span>] &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">3&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>m.insert({&lt;span style="color:#a5d6ff">&amp;#34;orange&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>});
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Iteration
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span> (&lt;span style="color:#ff7b72">const&lt;/span> &lt;span style="color:#ff7b72">auto&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span> &lt;span style="color:#79c0ff;font-weight:bold">pair&lt;/span> : m) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> pair.first &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;: &amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> pair.second &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="set">Set&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;set&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>set&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> s &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {&lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>}; &lt;span style="color:#8b949e;font-style:italic">// Automatically sorted, no duplicates
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>s.insert(&lt;span style="color:#a5d6ff">2&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s.erase(&lt;span style="color:#a5d6ff">3&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">bool&lt;/span> found &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> s.find(&lt;span style="color:#a5d6ff">4&lt;/span>) &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> s.end();
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="algorithms">Algorithms&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;algorithm&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>vector&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> v &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {&lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>, &lt;span style="color:#a5d6ff">9&lt;/span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Sorting
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>sort(v.begin(), v.end());
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Finding
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">auto&lt;/span> it &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>find(v.begin(), v.end(), &lt;span style="color:#a5d6ff">4&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> (it &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> v.end()) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Found at position: &amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>distance(v.begin(), it) &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Transforming
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>transform(v.begin(), v.end(), v.begin(), [](&lt;span style="color:#ff7b72">int&lt;/span> x) { &lt;span style="color:#ff7b72">return&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> &lt;span style="color:#a5d6ff">2&lt;/span>; });
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Filtering
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>vector&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> filtered;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>copy_if(v.begin(), v.end(), std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>back_inserter(filtered), 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [](&lt;span style="color:#ff7b72">int&lt;/span> x) { &lt;span style="color:#ff7b72">return&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> &lt;span style="color:#a5d6ff">5&lt;/span>; });
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="iterators">Iterators&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>vector&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> v &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Forward iterator
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span> (&lt;span style="color:#ff7b72">auto&lt;/span> it &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> v.begin(); it &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> v.end(); &lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>it) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>it &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34; &amp;#34;&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Reverse iterator
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span> (&lt;span style="color:#ff7b72">auto&lt;/span> it &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> v.rbegin(); it &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> v.rend(); &lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>it) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>it &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34; &amp;#34;&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Range-based for loop (preferred)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span> (&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#79c0ff;font-weight:bold">value&lt;/span> : v) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> value &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34; &amp;#34;&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="memory-management">Memory Management&lt;/h2>
&lt;h3 id="stack-vs-heap">Stack vs Heap&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Stack allocation
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Automatically managed
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> arr[&lt;span style="color:#a5d6ff">100&lt;/span>]; &lt;span style="color:#8b949e;font-style:italic">// Fixed size, stack allocated
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Heap allocation
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> ptr &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72">new&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span>(&lt;span style="color:#a5d6ff">10&lt;/span>); &lt;span style="color:#8b949e;font-style:italic">// Manual management required
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> arr &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72">new&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span>[&lt;span style="color:#a5d6ff">100&lt;/span>]; &lt;span style="color:#8b949e;font-style:italic">// Dynamic size, heap allocated
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Don&amp;#39;t forget to free
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">delete&lt;/span> ptr;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">delete&lt;/span>[] arr;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="raii-resource-acquisition-is-initialization">RAII (Resource Acquisition Is Initialization)&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">FileHandler&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>FILE&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> file;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> FileHandler(&lt;span style="color:#ff7b72">const&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>string&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span> filename) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> file &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>fopen(filename.c_str(), &lt;span style="color:#a5d6ff">&amp;#34;r&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> (&lt;span style="color:#ff7b72;font-weight:bold">!&lt;/span>file) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">throw&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>runtime_error(&lt;span style="color:#a5d6ff">&amp;#34;Cannot open file&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72;font-weight:bold">~&lt;/span>FileHandler() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> (file) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>fclose(file);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Delete copy constructor and assignment operator
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> FileHandler(&lt;span style="color:#ff7b72">const&lt;/span> FileHandler&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>) &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72">delete&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> FileHandler&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span> &lt;span style="color:#ff7b72">operator&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>(&lt;span style="color:#ff7b72">const&lt;/span> FileHandler&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>) &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72">delete&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>};
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="exception-handling">Exception Handling&lt;/h2>
&lt;h3 id="try-catch">Try-Catch&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;stdexcept&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">try&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">int&lt;/span> result &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> divide(&lt;span style="color:#a5d6ff">10&lt;/span>, &lt;span style="color:#a5d6ff">0&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Result: &amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> result &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>} &lt;span style="color:#ff7b72">catch&lt;/span> (&lt;span style="color:#ff7b72">const&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>runtime_error&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span> e) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cerr &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Runtime error: &amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> e.what() &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>} &lt;span style="color:#ff7b72">catch&lt;/span> (&lt;span style="color:#ff7b72">const&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>exception&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span> e) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cerr &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;General error: &amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> e.what() &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>} &lt;span style="color:#ff7b72">catch&lt;/span> (...) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cerr &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Unknown error occurred&amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="custom-exceptions">Custom Exceptions&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">DivisionByZeroException&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span> &lt;span style="color:#ff7b72">public&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>exception {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">const&lt;/span> &lt;span style="color:#ff7b72">char&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> what() &lt;span style="color:#ff7b72">const&lt;/span> &lt;span style="color:#ff7b72">noexcept&lt;/span> &lt;span style="color:#ff7b72">override&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Division by zero is not allowed&amp;#34;&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">divide&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span> a, &lt;span style="color:#ff7b72">int&lt;/span> b) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> (b &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">throw&lt;/span> DivisionByZeroException();
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> a &lt;span style="color:#ff7b72;font-weight:bold">/&lt;/span> b;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="templates">Templates&lt;/h2>
&lt;h3 id="function-templates">Function Templates&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">template&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">typename&lt;/span> T&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>T max(T a, T b) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> (a &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> b) &lt;span style="color:#ff7b72;font-weight:bold">?&lt;/span> &lt;span style="color:#79c0ff;font-weight:bold">a&lt;/span> : b;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Usage
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> max_int &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> max(&lt;span style="color:#a5d6ff">5&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">double&lt;/span> max_double &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> max(&lt;span style="color:#a5d6ff">5.5&lt;/span>, &lt;span style="color:#a5d6ff">3.3&lt;/span>);
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="class-templates">Class Templates&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">template&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">typename&lt;/span> T&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Stack&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>vector&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>T&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> elements;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">void&lt;/span> push(&lt;span style="color:#ff7b72">const&lt;/span> T&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span> item) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> elements.push_back(item);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> T &lt;span style="color:#d2a8ff;font-weight:bold">pop&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> (elements.empty()) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">throw&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>runtime_error(&lt;span style="color:#a5d6ff">&amp;#34;Stack is empty&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> T top &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> elements.back();
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> elements.pop_back();
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> top;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">bool&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">empty&lt;/span>() &lt;span style="color:#ff7b72">const&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> elements.empty();
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Usage
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>Stack&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> int_stack;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Stack&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>string&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> string_stack;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="template-specialization">Template Specialization&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">template&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">typename&lt;/span> T&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Container&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">void&lt;/span> process() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;General processing&amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Specialization for bool
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">template&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Container&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">bool&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">void&lt;/span> process() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Boolean processing&amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>};
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="modern-c-features">Modern C++ Features&lt;/h2>
&lt;h3 id="c11-features">C++11 Features&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Auto keyword
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">auto&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">42&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">auto&lt;/span> y &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">3.14&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Range-based for loop
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>vector&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> v &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> (&lt;span style="color:#ff7b72">auto&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span> &lt;span style="color:#79c0ff;font-weight:bold">element&lt;/span> : v) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> element &lt;span style="color:#ff7b72;font-weight:bold">*=&lt;/span> &lt;span style="color:#a5d6ff">2&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Lambda expressions
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">auto&lt;/span> lambda &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> [](&lt;span style="color:#ff7b72">int&lt;/span> x) { &lt;span style="color:#ff7b72">return&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> &lt;span style="color:#a5d6ff">2&lt;/span>; };
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// nullptr
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> ptr &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72">nullptr&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Instead of NULL
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Move semantics
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>vector&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> v1 &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>vector&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> v2 &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>move(v1); &lt;span style="color:#8b949e;font-style:italic">// v1 is now empty
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="c14-features">C++14 Features&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Generic lambda
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">auto&lt;/span> lambda &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> [](&lt;span style="color:#ff7b72">auto&lt;/span> x, &lt;span style="color:#ff7b72">auto&lt;/span> y) { &lt;span style="color:#ff7b72">return&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> y; };
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Return type deduction
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">auto&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">fibonacci&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span> n) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> (n &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;=&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span>) &lt;span style="color:#ff7b72">return&lt;/span> n;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> fibonacci(n&lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span>&lt;span style="color:#a5d6ff">1&lt;/span>) &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> fibonacci(n&lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span>&lt;span style="color:#a5d6ff">2&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Binary literals
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> binary &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0b101010&lt;/span>;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="c17-features">C++17 Features&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Structured bindings
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>map&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>string, &lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> m &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {{&lt;span style="color:#a5d6ff">&amp;#34;apple&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>}, {&lt;span style="color:#a5d6ff">&amp;#34;banana&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>}};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> (&lt;span style="color:#ff7b72">const&lt;/span> &lt;span style="color:#ff7b72">auto&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span> [key, value] &lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span> m) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> key &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;: &amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> value &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// if constexpr
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">template&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">typename&lt;/span> T&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">auto&lt;/span> process(T value) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">constexpr&lt;/span> (std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>is_integral_v&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>T&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> value &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> &lt;span style="color:#a5d6ff">2&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> } &lt;span style="color:#ff7b72">else&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> value;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="file-io">File I/O&lt;/h2>
&lt;h3 id="reading-files">Reading Files&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;fstream&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;sstream&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Read entire file
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>ifstream file(&lt;span style="color:#a5d6ff">&amp;#34;input.txt&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>string content((std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>istreambuf_iterator&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">char&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>(file)),
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>istreambuf_iterator&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">char&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>());
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Read line by line
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>ifstream file(&lt;span style="color:#a5d6ff">&amp;#34;input.txt&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>string line;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">while&lt;/span> (std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>getline(file, line)) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> line &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="writing-files">Writing Files&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;fstream&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Write to file
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>ofstream file(&lt;span style="color:#a5d6ff">&amp;#34;output.txt&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>file &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Hello, World!&amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>file &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Line 2&amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Append to file
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>ofstream file(&lt;span style="color:#a5d6ff">&amp;#34;output.txt&amp;#34;&lt;/span>, std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>ios&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>app);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>file &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Appended line&amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="debugging-and-best-practices">Debugging and Best Practices&lt;/h2>
&lt;h3 id="debugging">Debugging&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;cassert&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Assertions
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>assert(x &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>); &lt;span style="color:#8b949e;font-style:italic">// Only in debug builds
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Debug output
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#ifdef DEBUG
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Debug: x = &amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#endif
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="best-practices">Best Practices&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use const correctness
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">print&lt;/span>(&lt;span style="color:#ff7b72">const&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>string&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span> message) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> message &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use RAII for resource management
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">ResourceManager&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>unique_ptr&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>Resource&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> resource;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ResourceManager() &lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span> resource(std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>make_unique&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>Resource&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>()) {}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Destructor automatically called
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Prefer STL containers over raw arrays
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>vector&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> v(&lt;span style="color:#a5d6ff">100&lt;/span>); &lt;span style="color:#8b949e;font-style:italic">// Instead of int arr[100];
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use smart pointers instead of raw pointers
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>unique_ptr&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> ptr &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>make_unique&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>(&lt;span style="color:#a5d6ff">42&lt;/span>);
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="common-patterns">Common Patterns&lt;/h2>
&lt;h3 id="singleton-pattern">Singleton Pattern&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Singleton&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">static&lt;/span> Singleton&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> instance;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Singleton() &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72">default&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">static&lt;/span> Singleton&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> getInstance() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> (&lt;span style="color:#ff7b72;font-weight:bold">!&lt;/span>instance) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> instance &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72">new&lt;/span> Singleton();
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> instance;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Delete copy constructor and assignment
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> Singleton(&lt;span style="color:#ff7b72">const&lt;/span> Singleton&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>) &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72">delete&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Singleton&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span> &lt;span style="color:#ff7b72">operator&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>(&lt;span style="color:#ff7b72">const&lt;/span> Singleton&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>) &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72">delete&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>};
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="factory-pattern">Factory Pattern&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Product&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">virtual&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">~&lt;/span>Product() &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72">default&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">virtual&lt;/span> &lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">use&lt;/span>() &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">ConcreteProduct&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span> &lt;span style="color:#ff7b72">public&lt;/span> Product {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">void&lt;/span> use() &lt;span style="color:#ff7b72">override&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>cout &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Using concrete product&amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>endl;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Factory&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">static&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>unique_ptr&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>Product&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> createProduct() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>make_unique&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>ConcreteProduct&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>();
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>};
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="compilation-and-build-systems">Compilation and Build Systems&lt;/h2>
&lt;h3 id="cmake">CMake&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cmake" data-lang="cmake">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># CMakeLists.txt
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>cmake_minimum_required(&lt;span style="color:#a5d6ff">VERSION&lt;/span> &lt;span style="color:#a5d6ff">3.10&lt;/span>)&lt;span style="color:#f85149">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f85149">&lt;/span>project(&lt;span style="color:#a5d6ff">MyProject&lt;/span>)&lt;span style="color:#f85149">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f85149">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f85149">&lt;/span>set(&lt;span style="color:#a5d6ff">CMAKE_CXX_STANDARD&lt;/span> &lt;span style="color:#a5d6ff">17&lt;/span>)&lt;span style="color:#f85149">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f85149">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f85149">&lt;/span>add_executable(&lt;span style="color:#a5d6ff">myapp&lt;/span> &lt;span style="color:#a5d6ff">main.cpp&lt;/span> &lt;span style="color:#a5d6ff">utils.cpp&lt;/span>)&lt;span style="color:#f85149">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f85149">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f85149">&lt;/span>&lt;span style="color:#8b949e;font-style:italic"># Link libraries
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>target_link_libraries(&lt;span style="color:#a5d6ff">myapp&lt;/span> &lt;span style="color:#a5d6ff">pthread&lt;/span>)&lt;span style="color:#f85149">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="makefile">Makefile&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-makefile" data-lang="makefile">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Makefile
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#79c0ff">CXX&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> g++
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#79c0ff">CXXFLAGS&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> -std&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>c++17 -Wall -Wextra -g
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#79c0ff">TARGET&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> myapp
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#79c0ff">SOURCES&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> main.cpp utils.cpp
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">$(TARGET)&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span> &lt;span style="color:#ff7b72">$(&lt;/span>&lt;span style="color:#79c0ff">SOURCES&lt;/span>&lt;span style="color:#ff7b72">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	&lt;span style="color:#ff7b72">$(&lt;/span>CXX&lt;span style="color:#ff7b72">)&lt;/span> &lt;span style="color:#ff7b72">$(&lt;/span>CXXFLAGS&lt;span style="color:#ff7b72">)&lt;/span> -o &lt;span style="color:#ff7b72">$(&lt;/span>TARGET&lt;span style="color:#ff7b72">)&lt;/span> &lt;span style="color:#ff7b72">$(&lt;/span>SOURCES&lt;span style="color:#ff7b72">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">clean&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	rm -f &lt;span style="color:#ff7b72">$(&lt;/span>TARGET&lt;span style="color:#ff7b72">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="performance-tips">Performance Tips&lt;/h2>
&lt;h3 id="optimization">Optimization&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use const references for function parameters
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">process&lt;/span>(&lt;span style="color:#ff7b72">const&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>vector&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&amp;amp;&lt;/span> data) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Process data without copying
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use move semantics
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>vector&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> getData() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>vector&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> result(&lt;span style="color:#a5d6ff">1000&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// ... fill result
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#ff7b72">return&lt;/span> result; &lt;span style="color:#8b949e;font-style:italic">// Move semantics applied automatically
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Reserve vector capacity
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>vector&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> v;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>v.reserve(&lt;span style="color:#a5d6ff">1000&lt;/span>); &lt;span style="color:#8b949e;font-style:italic">// Avoid reallocations
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use emplace instead of push
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>vector&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>string&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> v;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>v.emplace_back(&lt;span style="color:#a5d6ff">&amp;#34;Hello&amp;#34;&lt;/span>); &lt;span style="color:#8b949e;font-style:italic">// Construct in place
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="memory-optimization">Memory Optimization&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use appropriate data types
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>&lt;span style="color:#ff7b72">uint8_t&lt;/span> small_number &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">255&lt;/span>; &lt;span style="color:#8b949e;font-style:italic">// Instead of int for small values
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use object pooling for frequently created objects
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">ObjectPool&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>vector&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>unique_ptr&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>Object&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&amp;gt;&lt;/span> pool;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>unique_ptr&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>Object&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> acquire() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> (pool.empty()) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>make_unique&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>Object&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>();
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">auto&lt;/span> obj &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>move(pool.back());
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> pool.pop_back();
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> obj;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">void&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">release&lt;/span>(std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>unique_ptr&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>Object&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> obj) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> pool.push_back(std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>move(obj));
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>};
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="testing">Testing&lt;/h2>
&lt;h3 id="unit-testing-with-google-test">Unit Testing (with Google Test)&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;gtest/gtest.h&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Test fixture
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">CalculatorTest&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span> &lt;span style="color:#ff7b72">public&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>testing&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>Test {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">protected&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">void&lt;/span> SetUp() &lt;span style="color:#ff7b72">override&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> calc &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>make_unique&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>Calculator&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>();
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>unique_ptr&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>Calculator&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> calc;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>};
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Test case
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>TEST_F(CalculatorTest, Addition) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> EXPECT_EQ(calc&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>add(&lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>), &lt;span style="color:#a5d6ff">5&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> EXPECT_EQ(calc&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>add(&lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span>&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">1&lt;/span>), &lt;span style="color:#a5d6ff">0&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>TEST_F(CalculatorTest, Division) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> EXPECT_EQ(calc&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>divide(&lt;span style="color:#a5d6ff">10&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>), &lt;span style="color:#a5d6ff">5&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> EXPECT_THROW(calc&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>divide(&lt;span style="color:#a5d6ff">10&lt;/span>, &lt;span style="color:#a5d6ff">0&lt;/span>), std&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>invalid_argument);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="quick-reference">Quick Reference&lt;/h2>
&lt;h3 id="common-headers">Common Headers&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;iostream&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Input/output
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;vector&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Dynamic arrays
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;string&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// String class
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;algorithm&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Algorithms
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;memory&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Smart pointers
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;fstream&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// File I/O
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;map&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Associative containers
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic">#include&lt;/span> &lt;span style="color:#8b949e;font-weight:bold;font-style:italic">&amp;lt;thread&amp;gt;&lt;/span>&lt;span style="color:#8b949e;font-weight:bold;font-style:italic"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Threading
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="essential-operators">Essential Operators&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-cpp" data-lang="cpp">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Arithmetic
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">/&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">%&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Comparison
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;=&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Logical
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&amp;amp;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">||&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">!&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Bitwise
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">|&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">^&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">~&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Assignment
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">+=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">-=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">/=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">%=&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Increment/Decrement
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">--&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Member access
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>. &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Scope resolution
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="see-also">See Also&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://en.cppreference.com/">cppreference.com&lt;/a> - Comprehensive C++ reference&lt;/li>
&lt;li>&lt;a href="https://github.com/isocpp/CppCoreGuidelines">C++ Core Guidelines&lt;/a> - Best practices&lt;/li>
&lt;li>&lt;a href="https://changkun.de/modern-cpp/">Modern C++ Tutorial&lt;/a> - Modern C++ features&lt;/li>
&lt;li>&lt;code>man g++&lt;/code> - GCC compiler manual&lt;/li>
&lt;li>&lt;code>clang++&lt;/code> - Clang compiler&lt;/li>
&lt;li>&lt;code>gdb&lt;/code> - GNU Debugger&lt;/li>
&lt;/ul></description></item><item><title>Go</title><link>http://qref.eknath.dev/programming/go/</link><pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate><guid>http://qref.eknath.dev/programming/go/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>Go (Golang) is a statically typed, compiled programming language developed at Google. It&amp;rsquo;s designed for simplicity, efficiency, and excellent concurrency support. Go is widely used for web services, cloud infrastructure, DevOps tools, and system programming.&lt;/p>
&lt;h2 id="installation">Installation&lt;/h2>
&lt;h3 id="go-installation">Go Installation&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Ubuntu/Debian&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo apt install golang-go
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># macOS&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>brew install go
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Windows&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Download from https://golang.org/dl/&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Verify installation&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go version
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Set GOPATH (optional with Go modules)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>export &lt;span style="color:#79c0ff">GOPATH&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#79c0ff">$HOME&lt;/span>/go
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>export &lt;span style="color:#79c0ff">PATH&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#79c0ff">$PATH&lt;/span>:&lt;span style="color:#79c0ff">$GOPATH&lt;/span>/bin
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="module-management">Module Management&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Initialize new module&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go mod init myproject
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Add dependency&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go get github.com/gorilla/mux
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Update dependencies&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go get -u
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Tidy modules&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go mod tidy
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Vendor dependencies&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go mod vendor
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="basic-syntax">Basic Syntax&lt;/h2>
&lt;h3 id="hello-world">Hello World&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">package&lt;/span> main
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;fmt&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">main&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Hello, World!&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="running-go-programs">Running Go Programs&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Run directly&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go run main.go
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Build executable&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go build main.go
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Build and install&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go install
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Format code&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go fmt
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Test code&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go test
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="data-types">Data Types&lt;/h2>
&lt;h3 id="basic-types">Basic Types&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Integer types&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> i &lt;span style="color:#ff7b72">int&lt;/span> = &lt;span style="color:#a5d6ff">42&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> i8 &lt;span style="color:#ff7b72">int8&lt;/span> = &lt;span style="color:#a5d6ff">127&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> i16 &lt;span style="color:#ff7b72">int16&lt;/span> = &lt;span style="color:#a5d6ff">32767&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> i32 &lt;span style="color:#ff7b72">int32&lt;/span> = &lt;span style="color:#a5d6ff">2147483647&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> i64 &lt;span style="color:#ff7b72">int64&lt;/span> = &lt;span style="color:#a5d6ff">9223372036854775807&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Unsigned integers&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> u &lt;span style="color:#ff7b72">uint&lt;/span> = &lt;span style="color:#a5d6ff">42&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> u8 &lt;span style="color:#ff7b72">uint8&lt;/span> = &lt;span style="color:#a5d6ff">255&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> u16 &lt;span style="color:#ff7b72">uint16&lt;/span> = &lt;span style="color:#a5d6ff">65535&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> u32 &lt;span style="color:#ff7b72">uint32&lt;/span> = &lt;span style="color:#a5d6ff">4294967295&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> u64 &lt;span style="color:#ff7b72">uint64&lt;/span> = &lt;span style="color:#a5d6ff">18446744073709551615&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Floating point&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> f32 &lt;span style="color:#ff7b72">float32&lt;/span> = &lt;span style="color:#a5d6ff">3.14&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> f64 &lt;span style="color:#ff7b72">float64&lt;/span> = &lt;span style="color:#a5d6ff">3.141592653589793&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Complex numbers&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> c64 &lt;span style="color:#ff7b72">complex64&lt;/span> = &lt;span style="color:#a5d6ff">1&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> &lt;span style="color:#a5d6ff">2i&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> c128 &lt;span style="color:#ff7b72">complex128&lt;/span> = &lt;span style="color:#a5d6ff">1&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> &lt;span style="color:#a5d6ff">2i&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Boolean&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> b &lt;span style="color:#ff7b72">bool&lt;/span> = &lt;span style="color:#79c0ff">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// String&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> s &lt;span style="color:#ff7b72">string&lt;/span> = &lt;span style="color:#a5d6ff">&amp;#34;Hello, Go!&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Byte (alias for uint8)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> bt &lt;span style="color:#ff7b72">byte&lt;/span> = &lt;span style="color:#a5d6ff">&amp;#39;A&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Rune (alias for int32, represents Unicode code point)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> r &lt;span style="color:#ff7b72">rune&lt;/span> = &lt;span style="color:#a5d6ff">&amp;#39;🚀&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="type-inference">Type Inference&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Short variable declaration&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">42&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// int&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>y &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">3.14&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// float64&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>z &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#79c0ff">true&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// bool&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;hello&amp;#34;&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// string&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Multiple assignments&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>a, b &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>name, age &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">30&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Zero values&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> i &lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// 0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> f &lt;span style="color:#ff7b72">float64&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// 0.0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> b &lt;span style="color:#ff7b72">bool&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> s &lt;span style="color:#ff7b72">string&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// &amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> p &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// nil&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="constants">Constants&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">const&lt;/span> Pi = &lt;span style="color:#a5d6ff">3.14159&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">const&lt;/span> MaxUsers = &lt;span style="color:#a5d6ff">1000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Typed constants&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">const&lt;/span> Name &lt;span style="color:#ff7b72">string&lt;/span> = &lt;span style="color:#a5d6ff">&amp;#34;Go&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">const&lt;/span> Version &lt;span style="color:#ff7b72">int&lt;/span> = &lt;span style="color:#a5d6ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Constant block&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">const&lt;/span> (
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> StatusOK = &lt;span style="color:#a5d6ff">200&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> StatusNotFound = &lt;span style="color:#a5d6ff">404&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> StatusError = &lt;span style="color:#a5d6ff">500&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// iota for enumeration&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">const&lt;/span> (
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Sunday = &lt;span style="color:#79c0ff">iota&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// 0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Monday &lt;span style="color:#8b949e;font-style:italic">// 1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Tuesday &lt;span style="color:#8b949e;font-style:italic">// 2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Wednesday &lt;span style="color:#8b949e;font-style:italic">// 3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Thursday &lt;span style="color:#8b949e;font-style:italic">// 4&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Friday &lt;span style="color:#8b949e;font-style:italic">// 5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Saturday &lt;span style="color:#8b949e;font-style:italic">// 6&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="variables-and-scope">Variables and Scope&lt;/h2>
&lt;h3 id="variable-declaration">Variable Declaration&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// var declaration&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> name &lt;span style="color:#ff7b72">string&lt;/span> = &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> age &lt;span style="color:#ff7b72">int&lt;/span> = &lt;span style="color:#a5d6ff">30&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Multiple variables&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> (
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> name &lt;span style="color:#ff7b72">string&lt;/span> = &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> age &lt;span style="color:#ff7b72">int&lt;/span> = &lt;span style="color:#a5d6ff">30&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> city &lt;span style="color:#ff7b72">string&lt;/span> = &lt;span style="color:#a5d6ff">&amp;#34;New York&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Short declaration (inside functions only)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>name &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>age &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">30&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Multiple short declarations&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>name, age &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">30&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="scope">Scope&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">package&lt;/span> main
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;fmt&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Package-level variable&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> globalVar = &lt;span style="color:#a5d6ff">&amp;#34;global&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">main&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Function-level variable&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> localVar &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;local&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Block-level variable&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> blockVar &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;block&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(blockVar)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// blockVar is not accessible here&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(globalVar, localVar)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="functions">Functions&lt;/h2>
&lt;h3 id="function-declaration">Function Declaration&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Basic function&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">greet&lt;/span>(name &lt;span style="color:#ff7b72">string&lt;/span>) &lt;span style="color:#ff7b72">string&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Hello, &amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> name
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Multiple parameters&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">add&lt;/span>(a, b &lt;span style="color:#ff7b72">int&lt;/span>) &lt;span style="color:#ff7b72">int&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> a &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> b
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Multiple return values&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">divide&lt;/span>(a, b &lt;span style="color:#ff7b72">float64&lt;/span>) (&lt;span style="color:#ff7b72">float64&lt;/span>, &lt;span style="color:#ff7b72">error&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> b &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>, fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Errorf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;division by zero&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> a &lt;span style="color:#ff7b72;font-weight:bold">/&lt;/span> b, &lt;span style="color:#79c0ff">nil&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Named return values&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">split&lt;/span>(sum &lt;span style="color:#ff7b72">int&lt;/span>) (x, y &lt;span style="color:#ff7b72">int&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> x = sum &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> &lt;span style="color:#a5d6ff">4&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">/&lt;/span> &lt;span style="color:#a5d6ff">9&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> y = sum &lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span> x
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// naked return&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="variadic-functions">Variadic Functions&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">sum&lt;/span>(numbers &lt;span style="color:#ff7b72;font-weight:bold">...&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>) &lt;span style="color:#ff7b72">int&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> total &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">for&lt;/span> _, num &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#ff7b72">range&lt;/span> numbers {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> total &lt;span style="color:#ff7b72;font-weight:bold">+=&lt;/span> num
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> total
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Usage&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>result &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">sum&lt;/span>(&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>nums &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> []&lt;span style="color:#ff7b72">int&lt;/span>{&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>result = &lt;span style="color:#d2a8ff;font-weight:bold">sum&lt;/span>(nums&lt;span style="color:#ff7b72;font-weight:bold">...&lt;/span>) &lt;span style="color:#8b949e;font-style:italic">// spread operator&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="function-types-and-closures">Function Types and Closures&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Function type&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">type&lt;/span> Operation &lt;span style="color:#ff7b72">func&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>, &lt;span style="color:#ff7b72">int&lt;/span>) &lt;span style="color:#ff7b72">int&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Function as parameter&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">calculate&lt;/span>(a, b &lt;span style="color:#ff7b72">int&lt;/span>, op Operation) &lt;span style="color:#ff7b72">int&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">op&lt;/span>(a, b)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Anonymous function&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>multiply &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#ff7b72">func&lt;/span>(x, y &lt;span style="color:#ff7b72">int&lt;/span>) &lt;span style="color:#ff7b72">int&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> y
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Closure&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">adder&lt;/span>() &lt;span style="color:#ff7b72">func&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>) &lt;span style="color:#ff7b72">int&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> sum &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#ff7b72">func&lt;/span>(x &lt;span style="color:#ff7b72">int&lt;/span>) &lt;span style="color:#ff7b72">int&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> sum &lt;span style="color:#ff7b72;font-weight:bold">+=&lt;/span> x
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> sum
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Usage&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>pos, neg &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">adder&lt;/span>(), &lt;span style="color:#d2a8ff;font-weight:bold">adder&lt;/span>()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(&lt;span style="color:#d2a8ff;font-weight:bold">pos&lt;/span>(&lt;span style="color:#a5d6ff">2&lt;/span>), &lt;span style="color:#d2a8ff;font-weight:bold">neg&lt;/span>(&lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span>&lt;span style="color:#a5d6ff">2&lt;/span>))
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="control-structures">Control Structures&lt;/h2>
&lt;h3 id="conditionals">Conditionals&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// if statement&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> x &amp;gt; &lt;span style="color:#a5d6ff">0&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Positive&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>} &lt;span style="color:#ff7b72">else&lt;/span> &lt;span style="color:#ff7b72">if&lt;/span> x &amp;lt; &lt;span style="color:#a5d6ff">0&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Negative&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>} &lt;span style="color:#ff7b72">else&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Zero&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// if with initialization&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> value &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">getValue&lt;/span>(); value &amp;gt; &lt;span style="color:#a5d6ff">0&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Value is positive:&amp;#34;&lt;/span>, value)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// switch statement&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">switch&lt;/span> day &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> time.&lt;span style="color:#d2a8ff;font-weight:bold">Now&lt;/span>().&lt;span style="color:#d2a8ff;font-weight:bold">Weekday&lt;/span>(); {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">case&lt;/span> day &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> time.Saturday &lt;span style="color:#ff7b72;font-weight:bold">||&lt;/span> day &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> time.Sunday:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Weekend&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">default&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Weekday&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Type switch&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">switch&lt;/span> v &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#ff7b72">interface&lt;/span>{}(x).(&lt;span style="color:#ff7b72">type&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">case&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Integer: %d\n&amp;#34;&lt;/span>, v)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">case&lt;/span> &lt;span style="color:#ff7b72">string&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;String: %s\n&amp;#34;&lt;/span>, v)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">default&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Unknown type: %T\n&amp;#34;&lt;/span>, v)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="loops">Loops&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// for loop&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>; i &amp;lt; &lt;span style="color:#a5d6ff">10&lt;/span>; i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(i)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// while-like loop&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>i &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> i &amp;lt; &lt;span style="color:#a5d6ff">10&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(i)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// infinite loop&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// loop body&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">break&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// exit condition&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// range loop&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>numbers &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> []&lt;span style="color:#ff7b72">int&lt;/span>{&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> index, value &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#ff7b72">range&lt;/span> numbers {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Index: %d, Value: %d\n&amp;#34;&lt;/span>, index, value)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// range with map&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>m &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#ff7b72">map&lt;/span>[&lt;span style="color:#ff7b72">string&lt;/span>]&lt;span style="color:#ff7b72">int&lt;/span>{&lt;span style="color:#a5d6ff">&amp;#34;a&amp;#34;&lt;/span>: &lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;b&amp;#34;&lt;/span>: &lt;span style="color:#a5d6ff">2&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> key, value &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#ff7b72">range&lt;/span> m {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Key: %s, Value: %d\n&amp;#34;&lt;/span>, key, value)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// range with channel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ch &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> make(&lt;span style="color:#ff7b72">chan&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">go&lt;/span> &lt;span style="color:#ff7b72">func&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">for&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>; i &amp;lt; &lt;span style="color:#a5d6ff">3&lt;/span>; i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ch &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;-&lt;/span> i
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> close(ch)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> value &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#ff7b72">range&lt;/span> ch {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(value)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="data-structures">Data Structures&lt;/h2>
&lt;h3 id="arrays">Arrays&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Array declaration&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> a [&lt;span style="color:#a5d6ff">5&lt;/span>]&lt;span style="color:#ff7b72">int&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> b = [&lt;span style="color:#a5d6ff">5&lt;/span>]&lt;span style="color:#ff7b72">int&lt;/span>{&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> c = [&lt;span style="color:#ff7b72;font-weight:bold">...&lt;/span>]&lt;span style="color:#ff7b72">int&lt;/span>{&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>} &lt;span style="color:#8b949e;font-style:italic">// compiler counts elements&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Array operations&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(len(a)) &lt;span style="color:#8b949e;font-style:italic">// length&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(a[&lt;span style="color:#a5d6ff">0&lt;/span>]) &lt;span style="color:#8b949e;font-style:italic">// access element&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>a[&lt;span style="color:#a5d6ff">0&lt;/span>] = &lt;span style="color:#a5d6ff">10&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// modify element&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Multi-dimensional arrays&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> matrix [&lt;span style="color:#a5d6ff">3&lt;/span>][&lt;span style="color:#a5d6ff">3&lt;/span>]&lt;span style="color:#ff7b72">int&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>matrix[&lt;span style="color:#a5d6ff">0&lt;/span>][&lt;span style="color:#a5d6ff">0&lt;/span>] = &lt;span style="color:#a5d6ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="slices">Slices&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Slice declaration&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> s []&lt;span style="color:#ff7b72">int&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s = []&lt;span style="color:#ff7b72">int&lt;/span>{&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Make slice&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s = make([]&lt;span style="color:#ff7b72">int&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>) &lt;span style="color:#8b949e;font-style:italic">// length 5, capacity 5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s = make([]&lt;span style="color:#ff7b72">int&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>) &lt;span style="color:#8b949e;font-style:italic">// length 3, capacity 5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Slice operations&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s = append(s, &lt;span style="color:#a5d6ff">6&lt;/span>) &lt;span style="color:#8b949e;font-style:italic">// append element&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s = append(s, &lt;span style="color:#a5d6ff">7&lt;/span>, &lt;span style="color:#a5d6ff">8&lt;/span>) &lt;span style="color:#8b949e;font-style:italic">// append multiple&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(len(s)) &lt;span style="color:#8b949e;font-style:italic">// length&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(cap(s)) &lt;span style="color:#8b949e;font-style:italic">// capacity&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Slicing&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sub &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> s[&lt;span style="color:#a5d6ff">1&lt;/span>:&lt;span style="color:#a5d6ff">4&lt;/span>] &lt;span style="color:#8b949e;font-style:italic">// elements 1, 2, 3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sub = s[:&lt;span style="color:#a5d6ff">3&lt;/span>] &lt;span style="color:#8b949e;font-style:italic">// elements 0, 1, 2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sub = s[&lt;span style="color:#a5d6ff">2&lt;/span>:] &lt;span style="color:#8b949e;font-style:italic">// from element 2 to end&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sub = s[:] &lt;span style="color:#8b949e;font-style:italic">// all elements&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Copy slice&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>dest &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> make([]&lt;span style="color:#ff7b72">int&lt;/span>, len(s))
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>copy(dest, s)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="maps">Maps&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Map declaration&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> m &lt;span style="color:#ff7b72">map&lt;/span>[&lt;span style="color:#ff7b72">string&lt;/span>]&lt;span style="color:#ff7b72">int&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>m = make(&lt;span style="color:#ff7b72">map&lt;/span>[&lt;span style="color:#ff7b72">string&lt;/span>]&lt;span style="color:#ff7b72">int&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Map literal&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>m = &lt;span style="color:#ff7b72">map&lt;/span>[&lt;span style="color:#ff7b72">string&lt;/span>]&lt;span style="color:#ff7b72">int&lt;/span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">&amp;#34;apple&amp;#34;&lt;/span>: &lt;span style="color:#a5d6ff">5&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">&amp;#34;banana&amp;#34;&lt;/span>: &lt;span style="color:#a5d6ff">3&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">&amp;#34;orange&amp;#34;&lt;/span>: &lt;span style="color:#a5d6ff">8&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Map operations&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>m[&lt;span style="color:#a5d6ff">&amp;#34;grape&amp;#34;&lt;/span>] = &lt;span style="color:#a5d6ff">2&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// add/update&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>delete(m, &lt;span style="color:#a5d6ff">&amp;#34;banana&amp;#34;&lt;/span>) &lt;span style="color:#8b949e;font-style:italic">// delete&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>value, ok &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> m[&lt;span style="color:#a5d6ff">&amp;#34;apple&amp;#34;&lt;/span>] &lt;span style="color:#8b949e;font-style:italic">// check existence&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Iterate map&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> key, value &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#ff7b72">range&lt;/span> m {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;%s: %d\n&amp;#34;&lt;/span>, key, value)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="strings">Strings&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// String operations&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Hello, 世界&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(len(s)) &lt;span style="color:#8b949e;font-style:italic">// byte length&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(len([]rune(s))) &lt;span style="color:#8b949e;font-style:italic">// character count&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// String manipulation&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;strings&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s = strings.&lt;span style="color:#d2a8ff;font-weight:bold">ToUpper&lt;/span>(s)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s = strings.&lt;span style="color:#d2a8ff;font-weight:bold">ToLower&lt;/span>(s)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s = strings.&lt;span style="color:#d2a8ff;font-weight:bold">TrimSpace&lt;/span>(s)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>parts &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> strings.&lt;span style="color:#d2a8ff;font-weight:bold">Split&lt;/span>(s, &lt;span style="color:#a5d6ff">&amp;#34;,&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>joined &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> strings.&lt;span style="color:#d2a8ff;font-weight:bold">Join&lt;/span>(parts, &lt;span style="color:#a5d6ff">&amp;#34;-&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// String formatting&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;fmt&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>name &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>age &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">30&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>message &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Sprintf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Name: %s, Age: %d&amp;#34;&lt;/span>, name, age)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="structs">Structs&lt;/h2>
&lt;h3 id="struct-definition">Struct Definition&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">type&lt;/span> Person &lt;span style="color:#ff7b72">struct&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Name &lt;span style="color:#ff7b72">string&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Age &lt;span style="color:#ff7b72">int&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> City &lt;span style="color:#ff7b72">string&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Struct with methods&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">type&lt;/span> Rectangle &lt;span style="color:#ff7b72">struct&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Width &lt;span style="color:#ff7b72">float64&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Height &lt;span style="color:#ff7b72">float64&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> (r Rectangle) &lt;span style="color:#d2a8ff;font-weight:bold">Area&lt;/span>() &lt;span style="color:#ff7b72">float64&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> r.Width &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> r.Height
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> (r &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>Rectangle) &lt;span style="color:#d2a8ff;font-weight:bold">Scale&lt;/span>(factor &lt;span style="color:#ff7b72">float64&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> r.Width &lt;span style="color:#ff7b72;font-weight:bold">*=&lt;/span> factor
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> r.Height &lt;span style="color:#ff7b72;font-weight:bold">*=&lt;/span> factor
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="struct-usage">Struct Usage&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Create struct&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>p1 &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> Person{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Name: &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Age: &lt;span style="color:#a5d6ff">30&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> City: &lt;span style="color:#a5d6ff">&amp;#34;New York&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Positional initialization&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>p2 &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> Person{&lt;span style="color:#a5d6ff">&amp;#34;Jane&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">25&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;London&amp;#34;&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Zero value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> p3 Person
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Pointer to struct&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>p4 &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>Person{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Name: &lt;span style="color:#a5d6ff">&amp;#34;Bob&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Age: &lt;span style="color:#a5d6ff">35&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Access fields&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(p1.Name)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>p1.Age = &lt;span style="color:#a5d6ff">31&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="embedded-structs">Embedded Structs&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">type&lt;/span> Address &lt;span style="color:#ff7b72">struct&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Street &lt;span style="color:#ff7b72">string&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> City &lt;span style="color:#ff7b72">string&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> State &lt;span style="color:#ff7b72">string&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">type&lt;/span> Employee &lt;span style="color:#ff7b72">struct&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Name &lt;span style="color:#ff7b72">string&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Age &lt;span style="color:#ff7b72">int&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Address &lt;span style="color:#8b949e;font-style:italic">// embedded struct&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Usage&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>emp &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> Employee{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Name: &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Age: &lt;span style="color:#a5d6ff">30&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Address: Address{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Street: &lt;span style="color:#a5d6ff">&amp;#34;123 Main St&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> City: &lt;span style="color:#a5d6ff">&amp;#34;New York&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> State: &lt;span style="color:#a5d6ff">&amp;#34;NY&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> },
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Direct access to embedded fields&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(emp.Street) &lt;span style="color:#8b949e;font-style:italic">// same as emp.Address.Street&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="interfaces">Interfaces&lt;/h2>
&lt;h3 id="interface-definition">Interface Definition&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">type&lt;/span> Shape &lt;span style="color:#ff7b72">interface&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">Area&lt;/span>() &lt;span style="color:#ff7b72">float64&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">Perimeter&lt;/span>() &lt;span style="color:#ff7b72">float64&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">type&lt;/span> Writer &lt;span style="color:#ff7b72">interface&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">Write&lt;/span>([]&lt;span style="color:#ff7b72">byte&lt;/span>) (&lt;span style="color:#ff7b72">int&lt;/span>, &lt;span style="color:#ff7b72">error&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Empty interface&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> x &lt;span style="color:#ff7b72">interface&lt;/span>{}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x = &lt;span style="color:#a5d6ff">42&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x = &lt;span style="color:#a5d6ff">&amp;#34;hello&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x = []&lt;span style="color:#ff7b72">int&lt;/span>{&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="interface-implementation">Interface Implementation&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">type&lt;/span> Circle &lt;span style="color:#ff7b72">struct&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Radius &lt;span style="color:#ff7b72">float64&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> (c Circle) &lt;span style="color:#d2a8ff;font-weight:bold">Area&lt;/span>() &lt;span style="color:#ff7b72">float64&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> math.Pi &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> c.Radius &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> c.Radius
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> (c Circle) &lt;span style="color:#d2a8ff;font-weight:bold">Perimeter&lt;/span>() &lt;span style="color:#ff7b72">float64&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">2&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> math.Pi &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> c.Radius
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Usage&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> s Shape = Circle{Radius: &lt;span style="color:#a5d6ff">5&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(s.&lt;span style="color:#d2a8ff;font-weight:bold">Area&lt;/span>())
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="type-assertions">Type Assertions&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> i &lt;span style="color:#ff7b72">interface&lt;/span>{} = &lt;span style="color:#a5d6ff">&amp;#34;hello&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Type assertion&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> i.(&lt;span style="color:#ff7b72">string&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(s)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Safe type assertion&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s, ok &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> i.(&lt;span style="color:#ff7b72">string&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> ok {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(s)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Type switch&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">switch&lt;/span> v &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> i.(&lt;span style="color:#ff7b72">type&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">case&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Integer: %d\n&amp;#34;&lt;/span>, v)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">case&lt;/span> &lt;span style="color:#ff7b72">string&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;String: %s\n&amp;#34;&lt;/span>, v)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">default&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Unknown type: %T\n&amp;#34;&lt;/span>, v)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="error-handling">Error Handling&lt;/h2>
&lt;h3 id="error-type">Error Type&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Error interface&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">type&lt;/span> &lt;span style="color:#ff7b72">error&lt;/span> &lt;span style="color:#ff7b72">interface&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">Error&lt;/span>() &lt;span style="color:#ff7b72">string&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Creating errors&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;errors&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>err &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> errors.&lt;span style="color:#d2a8ff;font-weight:bold">New&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;something went wrong&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Formatted errors&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;fmt&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>err &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Errorf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;failed to process %s: %w&amp;#34;&lt;/span>, filename, originalErr)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="error-handling-patterns">Error Handling Patterns&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Basic error handling&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">divide&lt;/span>(a, b &lt;span style="color:#ff7b72">float64&lt;/span>) (&lt;span style="color:#ff7b72">float64&lt;/span>, &lt;span style="color:#ff7b72">error&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> b &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>, errors.&lt;span style="color:#d2a8ff;font-weight:bold">New&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;division by zero&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> a &lt;span style="color:#ff7b72;font-weight:bold">/&lt;/span> b, &lt;span style="color:#79c0ff">nil&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Usage&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>result, err &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">divide&lt;/span>(&lt;span style="color:#a5d6ff">10&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> err &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> &lt;span style="color:#79c0ff">nil&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> log.&lt;span style="color:#d2a8ff;font-weight:bold">Fatal&lt;/span>(err)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(result)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Multiple error checks&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">processFile&lt;/span>(filename &lt;span style="color:#ff7b72">string&lt;/span>) &lt;span style="color:#ff7b72">error&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> file, err &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> os.&lt;span style="color:#d2a8ff;font-weight:bold">Open&lt;/span>(filename)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> err &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> &lt;span style="color:#79c0ff">nil&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Errorf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;failed to open file: %w&amp;#34;&lt;/span>, err)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">defer&lt;/span> file.&lt;span style="color:#d2a8ff;font-weight:bold">Close&lt;/span>()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> data, err &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> io.&lt;span style="color:#d2a8ff;font-weight:bold">ReadAll&lt;/span>(file)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> err &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> &lt;span style="color:#79c0ff">nil&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Errorf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;failed to read file: %w&amp;#34;&lt;/span>, err)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Process data&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#79c0ff">nil&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="custom-errors">Custom Errors&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">type&lt;/span> ValidationError &lt;span style="color:#ff7b72">struct&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Field &lt;span style="color:#ff7b72">string&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Value &lt;span style="color:#ff7b72">interface&lt;/span>{}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Msg &lt;span style="color:#ff7b72">string&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> (e &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>ValidationError) &lt;span style="color:#d2a8ff;font-weight:bold">Error&lt;/span>() &lt;span style="color:#ff7b72">string&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Sprintf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;validation failed for field %s: %s&amp;#34;&lt;/span>, e.Field, e.Msg)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Usage&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">validateAge&lt;/span>(age &lt;span style="color:#ff7b72">int&lt;/span>) &lt;span style="color:#ff7b72">error&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> age &amp;lt; &lt;span style="color:#a5d6ff">0&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>ValidationError{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Field: &lt;span style="color:#a5d6ff">&amp;#34;age&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Value: age,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Msg: &lt;span style="color:#a5d6ff">&amp;#34;age cannot be negative&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#79c0ff">nil&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="concurrency">Concurrency&lt;/h2>
&lt;h3 id="goroutines">Goroutines&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Start goroutine&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">go&lt;/span> &lt;span style="color:#ff7b72">func&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Hello from goroutine&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Goroutine with parameters&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">go&lt;/span> &lt;span style="color:#ff7b72">func&lt;/span>(msg &lt;span style="color:#ff7b72">string&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(msg)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}(&lt;span style="color:#a5d6ff">&amp;#34;Hello, concurrent world!&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Wait for goroutines&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;sync&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> wg sync.WaitGroup
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>; i &amp;lt; &lt;span style="color:#a5d6ff">5&lt;/span>; i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> wg.&lt;span style="color:#d2a8ff;font-weight:bold">Add&lt;/span>(&lt;span style="color:#a5d6ff">1&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">go&lt;/span> &lt;span style="color:#ff7b72">func&lt;/span>(n &lt;span style="color:#ff7b72">int&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">defer&lt;/span> wg.&lt;span style="color:#d2a8ff;font-weight:bold">Done&lt;/span>()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Goroutine %d\n&amp;#34;&lt;/span>, n)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }(i)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>wg.&lt;span style="color:#d2a8ff;font-weight:bold">Wait&lt;/span>()
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="channels">Channels&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Create channel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ch &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> make(&lt;span style="color:#ff7b72">chan&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Buffered channel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ch &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> make(&lt;span style="color:#ff7b72">chan&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span>, &lt;span style="color:#a5d6ff">10&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Send and receive&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">go&lt;/span> &lt;span style="color:#ff7b72">func&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ch &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;-&lt;/span> &lt;span style="color:#a5d6ff">42&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// send&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>value &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;-&lt;/span>ch &lt;span style="color:#8b949e;font-style:italic">// receive&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Channel directions&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">sender&lt;/span>(ch &lt;span style="color:#ff7b72">chan&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;-&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ch &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;-&lt;/span> &lt;span style="color:#a5d6ff">42&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">receiver&lt;/span>(ch &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;-&lt;/span>&lt;span style="color:#ff7b72">chan&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> value &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;-&lt;/span>ch
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(value)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Close channel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>close(ch)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Range over channel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> value &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#ff7b72">range&lt;/span> ch {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(value)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="select-statement">Select Statement&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">select&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">case&lt;/span> msg1 &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;-&lt;/span>ch1:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Received from ch1:&amp;#34;&lt;/span>, msg1)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">case&lt;/span> msg2 &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;-&lt;/span>ch2:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Received from ch2:&amp;#34;&lt;/span>, msg2)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">case&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;-&lt;/span>time.&lt;span style="color:#d2a8ff;font-weight:bold">After&lt;/span>(&lt;span style="color:#a5d6ff">1&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> time.Second):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Timeout&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">default&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;No channel ready&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="sync-package">Sync Package&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;sync&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Mutex&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> mu sync.Mutex
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>mu.&lt;span style="color:#d2a8ff;font-weight:bold">Lock&lt;/span>()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// critical section&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>mu.&lt;span style="color:#d2a8ff;font-weight:bold">Unlock&lt;/span>()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// RWMutex&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> rwmu sync.RWMutex
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>rwmu.&lt;span style="color:#d2a8ff;font-weight:bold">RLock&lt;/span>()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// read operation&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>rwmu.&lt;span style="color:#d2a8ff;font-weight:bold">RUnlock&lt;/span>()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>rwmu.&lt;span style="color:#d2a8ff;font-weight:bold">Lock&lt;/span>()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// write operation&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>rwmu.&lt;span style="color:#d2a8ff;font-weight:bold">Unlock&lt;/span>()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Once&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> once sync.Once
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>once.&lt;span style="color:#d2a8ff;font-weight:bold">Do&lt;/span>(&lt;span style="color:#ff7b72">func&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;This runs only once&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>})
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="standard-library">Standard Library&lt;/h2>
&lt;h3 id="package-management">Package Management&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Import packages&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;fmt&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;net/http&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Multiple imports&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> (
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">&amp;#34;fmt&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">&amp;#34;net/http&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">&amp;#34;time&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Package alias&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> (
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> f &lt;span style="color:#a5d6ff">&amp;#34;fmt&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> h &lt;span style="color:#a5d6ff">&amp;#34;net/http&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Blank import&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> _ &lt;span style="color:#a5d6ff">&amp;#34;database/sql&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="common-packages">Common Packages&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// fmt - Formatted I/O&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;fmt&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Hello&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Printf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Value: %d\n&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">42&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Sprintf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Formatted: %s&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;string&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// strings - String manipulation&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;strings&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>strings.&lt;span style="color:#d2a8ff;font-weight:bold">Contains&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;hello&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;ell&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>strings.&lt;span style="color:#d2a8ff;font-weight:bold">Split&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;a,b,c&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;,&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>strings.&lt;span style="color:#d2a8ff;font-weight:bold">Join&lt;/span>([]&lt;span style="color:#ff7b72">string&lt;/span>{&lt;span style="color:#a5d6ff">&amp;#34;a&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;b&amp;#34;&lt;/span>}, &lt;span style="color:#a5d6ff">&amp;#34;-&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// strconv - String conversions&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;strconv&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>i, err &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> strconv.&lt;span style="color:#d2a8ff;font-weight:bold">Atoi&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;42&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> strconv.&lt;span style="color:#d2a8ff;font-weight:bold">Itoa&lt;/span>(&lt;span style="color:#a5d6ff">42&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>f, err &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> strconv.&lt;span style="color:#d2a8ff;font-weight:bold">ParseFloat&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;3.14&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">64&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// time - Time operations&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;time&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>now &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> time.&lt;span style="color:#d2a8ff;font-weight:bold">Now&lt;/span>()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>duration &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> time.&lt;span style="color:#d2a8ff;font-weight:bold">Duration&lt;/span>(&lt;span style="color:#a5d6ff">5&lt;/span>) &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> time.Second
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>time.&lt;span style="color:#d2a8ff;font-weight:bold">Sleep&lt;/span>(duration)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="file-operations">File Operations&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> (
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">&amp;#34;os&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">&amp;#34;io&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">&amp;#34;bufio&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Read file&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>data, err &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> os.&lt;span style="color:#d2a8ff;font-weight:bold">ReadFile&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;filename.txt&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> err &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> &lt;span style="color:#79c0ff">nil&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> log.&lt;span style="color:#d2a8ff;font-weight:bold">Fatal&lt;/span>(err)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Write file&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>err = os.&lt;span style="color:#d2a8ff;font-weight:bold">WriteFile&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;output.txt&amp;#34;&lt;/span>, []byte(&lt;span style="color:#a5d6ff">&amp;#34;Hello, World!&amp;#34;&lt;/span>), &lt;span style="color:#a5d6ff">0644&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> err &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> &lt;span style="color:#79c0ff">nil&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> log.&lt;span style="color:#d2a8ff;font-weight:bold">Fatal&lt;/span>(err)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Open file&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>file, err &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> os.&lt;span style="color:#d2a8ff;font-weight:bold">Open&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;filename.txt&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> err &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> &lt;span style="color:#79c0ff">nil&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> log.&lt;span style="color:#d2a8ff;font-weight:bold">Fatal&lt;/span>(err)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">defer&lt;/span> file.&lt;span style="color:#d2a8ff;font-weight:bold">Close&lt;/span>()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Buffered reading&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>scanner &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> bufio.&lt;span style="color:#d2a8ff;font-weight:bold">NewScanner&lt;/span>(file)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> scanner.&lt;span style="color:#d2a8ff;font-weight:bold">Scan&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(scanner.&lt;span style="color:#d2a8ff;font-weight:bold">Text&lt;/span>())
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="http-clientserver">HTTP Client/Server&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> (
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">&amp;#34;net/http&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">&amp;#34;encoding/json&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// HTTP client&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>resp, err &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> http.&lt;span style="color:#d2a8ff;font-weight:bold">Get&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;https://api.example.com/users&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> err &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> &lt;span style="color:#79c0ff">nil&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> log.&lt;span style="color:#d2a8ff;font-weight:bold">Fatal&lt;/span>(err)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">defer&lt;/span> resp.Body.&lt;span style="color:#d2a8ff;font-weight:bold">Close&lt;/span>()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>body, err &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> io.&lt;span style="color:#d2a8ff;font-weight:bold">ReadAll&lt;/span>(resp.Body)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> err &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> &lt;span style="color:#79c0ff">nil&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> log.&lt;span style="color:#d2a8ff;font-weight:bold">Fatal&lt;/span>(err)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// HTTP server&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http.&lt;span style="color:#d2a8ff;font-weight:bold">HandleFunc&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;/&amp;#34;&lt;/span>, &lt;span style="color:#ff7b72">func&lt;/span>(w http.ResponseWriter, r &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>http.Request) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Fprintf&lt;/span>(w, &lt;span style="color:#a5d6ff">&amp;#34;Hello, World!&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>})
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http.&lt;span style="color:#d2a8ff;font-weight:bold">HandleFunc&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;/api/users&amp;#34;&lt;/span>, &lt;span style="color:#ff7b72">func&lt;/span>(w http.ResponseWriter, r &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>http.Request) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> users &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> []&lt;span style="color:#ff7b72">string&lt;/span>{&lt;span style="color:#a5d6ff">&amp;#34;Alice&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;Bob&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;Charlie&amp;#34;&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> json.&lt;span style="color:#d2a8ff;font-weight:bold">NewEncoder&lt;/span>(w).&lt;span style="color:#d2a8ff;font-weight:bold">Encode&lt;/span>(users)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>})
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>log.&lt;span style="color:#d2a8ff;font-weight:bold">Fatal&lt;/span>(http.&lt;span style="color:#d2a8ff;font-weight:bold">ListenAndServe&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;:8080&amp;#34;&lt;/span>, &lt;span style="color:#79c0ff">nil&lt;/span>))
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="json-processing">JSON Processing&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;encoding/json&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Struct for JSON&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">type&lt;/span> User &lt;span style="color:#ff7b72">struct&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Name &lt;span style="color:#ff7b72">string&lt;/span> &lt;span style="color:#a5d6ff">`json:&amp;#34;name&amp;#34;`&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Email &lt;span style="color:#ff7b72">string&lt;/span> &lt;span style="color:#a5d6ff">`json:&amp;#34;email&amp;#34;`&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Age &lt;span style="color:#ff7b72">int&lt;/span> &lt;span style="color:#a5d6ff">`json:&amp;#34;age&amp;#34;`&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Marshal to JSON&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>user &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> User{Name: &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>, Email: &lt;span style="color:#a5d6ff">&amp;#34;john@example.com&amp;#34;&lt;/span>, Age: &lt;span style="color:#a5d6ff">30&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>data, err &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> json.&lt;span style="color:#d2a8ff;font-weight:bold">Marshal&lt;/span>(user)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> err &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> &lt;span style="color:#79c0ff">nil&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> log.&lt;span style="color:#d2a8ff;font-weight:bold">Fatal&lt;/span>(err)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Unmarshal from JSON&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> user2 User
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>err = json.&lt;span style="color:#d2a8ff;font-weight:bold">Unmarshal&lt;/span>(data, &lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>user2)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> err &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> &lt;span style="color:#79c0ff">nil&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> log.&lt;span style="color:#d2a8ff;font-weight:bold">Fatal&lt;/span>(err)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Working with generic JSON&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> result &lt;span style="color:#ff7b72">map&lt;/span>[&lt;span style="color:#ff7b72">string&lt;/span>]&lt;span style="color:#ff7b72">interface&lt;/span>{}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>err = json.&lt;span style="color:#d2a8ff;font-weight:bold">Unmarshal&lt;/span>(data, &lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>result)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="testing">Testing&lt;/h2>
&lt;h3 id="basic-testing">Basic Testing&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// math.go&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">package&lt;/span> math
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">Add&lt;/span>(a, b &lt;span style="color:#ff7b72">int&lt;/span>) &lt;span style="color:#ff7b72">int&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> a &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> b
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// math_test.go&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">package&lt;/span> math
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;testing&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">TestAdd&lt;/span>(t &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>testing.T) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> result &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">Add&lt;/span>(&lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> expected &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> result &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> expected {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> t.&lt;span style="color:#d2a8ff;font-weight:bold">Errorf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Add(2, 3) = %d; expected %d&amp;#34;&lt;/span>, result, expected)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">TestAddMultiple&lt;/span>(t &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>testing.T) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> tests &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> []&lt;span style="color:#ff7b72">struct&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> a, b, expected &lt;span style="color:#ff7b72">int&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {&lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>},
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {&lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span>&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">0&lt;/span>},
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {&lt;span style="color:#a5d6ff">0&lt;/span>, &lt;span style="color:#a5d6ff">0&lt;/span>, &lt;span style="color:#a5d6ff">0&lt;/span>},
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">for&lt;/span> _, test &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#ff7b72">range&lt;/span> tests {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> result &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">Add&lt;/span>(test.a, test.b)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> result &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> test.expected {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> t.&lt;span style="color:#d2a8ff;font-weight:bold">Errorf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Add(%d, %d) = %d; expected %d&amp;#34;&lt;/span>, 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> test.a, test.b, result, test.expected)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="benchmarking">Benchmarking&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">BenchmarkAdd&lt;/span>(b &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>testing.B) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">for&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>; i &amp;lt; b.N; i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">Add&lt;/span>(&lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Run benchmarks&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// go test -bench=.&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="test-coverage">Test Coverage&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Run tests with coverage&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go test -cover
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Generate coverage report&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go test -coverprofile&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>coverage.out
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go tool cover -html&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>coverage.out
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="best-practices">Best Practices&lt;/h2>
&lt;h3 id="code-organization">Code Organization&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Package declaration&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">package&lt;/span> main
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Import block&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> (
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">&amp;#34;fmt&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">&amp;#34;net/http&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">&amp;#34;github.com/gorilla/mux&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Constants&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">const&lt;/span> (
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> DefaultPort = &lt;span style="color:#a5d6ff">8080&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> MaxRetries = &lt;span style="color:#a5d6ff">3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Types&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">type&lt;/span> Server &lt;span style="color:#ff7b72">struct&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> port &lt;span style="color:#ff7b72">int&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> mux &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>mux.Router
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Functions&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">NewServer&lt;/span>(port &lt;span style="color:#ff7b72">int&lt;/span>) &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>Server {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>Server{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> port: port,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> mux: mux.&lt;span style="color:#d2a8ff;font-weight:bold">NewRouter&lt;/span>(),
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="error-handling-1">Error Handling&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Don&amp;#39;t ignore errors&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>result, err &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">someFunction&lt;/span>()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> err &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> &lt;span style="color:#79c0ff">nil&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Errorf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;failed to process: %w&amp;#34;&lt;/span>, err)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use early returns&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">processUser&lt;/span>(user User) &lt;span style="color:#ff7b72">error&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> user.Name &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;&amp;#34;&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> errors.&lt;span style="color:#d2a8ff;font-weight:bold">New&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;name is required&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> user.Email &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;&amp;#34;&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> errors.&lt;span style="color:#d2a8ff;font-weight:bold">New&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;email is required&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Process user&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#79c0ff">nil&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="resource-management">Resource Management&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Always close resources&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>file, err &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> os.&lt;span style="color:#d2a8ff;font-weight:bold">Open&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;filename.txt&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> err &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> &lt;span style="color:#79c0ff">nil&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> err
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">defer&lt;/span> file.&lt;span style="color:#d2a8ff;font-weight:bold">Close&lt;/span>()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use context for cancellation&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ctx, cancel &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> context.&lt;span style="color:#d2a8ff;font-weight:bold">WithTimeout&lt;/span>(context.&lt;span style="color:#d2a8ff;font-weight:bold">Background&lt;/span>(), &lt;span style="color:#a5d6ff">5&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>time.Second)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">defer&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">cancel&lt;/span>()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>req, err &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> http.&lt;span style="color:#d2a8ff;font-weight:bold">NewRequestWithContext&lt;/span>(ctx, &lt;span style="color:#a5d6ff">&amp;#34;GET&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;https://api.example.com&amp;#34;&lt;/span>, &lt;span style="color:#79c0ff">nil&lt;/span>)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="performance-tips">Performance Tips&lt;/h2>
&lt;h3 id="memory-management">Memory Management&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use slices efficiently&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> make([]&lt;span style="color:#ff7b72">int&lt;/span>, &lt;span style="color:#a5d6ff">0&lt;/span>, &lt;span style="color:#a5d6ff">100&lt;/span>) &lt;span style="color:#8b949e;font-style:italic">// preallocate capacity&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s = append(s, &lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Avoid memory leaks with slices&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">processLargeSlice&lt;/span>(data []&lt;span style="color:#ff7b72">int&lt;/span>) []&lt;span style="color:#ff7b72">int&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Process only first 10 elements&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> result &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> make([]&lt;span style="color:#ff7b72">int&lt;/span>, &lt;span style="color:#a5d6ff">10&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> copy(result, data[:&lt;span style="color:#a5d6ff">10&lt;/span>])
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> result &lt;span style="color:#8b949e;font-style:italic">// Don&amp;#39;t return data[:10] to avoid holding large slice&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use string builder for concatenation&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> builder strings.Builder
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>; i &amp;lt; &lt;span style="color:#a5d6ff">1000&lt;/span>; i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> builder.&lt;span style="color:#d2a8ff;font-weight:bold">WriteString&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;item&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>result &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> builder.&lt;span style="color:#d2a8ff;font-weight:bold">String&lt;/span>()
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="concurrency-patterns">Concurrency Patterns&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Worker pool pattern&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">workerPool&lt;/span>(jobs &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;-&lt;/span>&lt;span style="color:#ff7b72">chan&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span>, results &lt;span style="color:#ff7b72">chan&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;-&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">for&lt;/span> job &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#ff7b72">range&lt;/span> jobs {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Process job&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> results &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;-&lt;/span> job &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> &lt;span style="color:#a5d6ff">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Start workers&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>jobs &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> make(&lt;span style="color:#ff7b72">chan&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span>, &lt;span style="color:#a5d6ff">100&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>results &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> make(&lt;span style="color:#ff7b72">chan&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span>, &lt;span style="color:#a5d6ff">100&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> w &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span>; w &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;=&lt;/span> &lt;span style="color:#a5d6ff">3&lt;/span>; w&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">go&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">workerPool&lt;/span>(jobs, results)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Fan-out pattern&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">fanOut&lt;/span>(input &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;-&lt;/span>&lt;span style="color:#ff7b72">chan&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span>, workers &lt;span style="color:#ff7b72">int&lt;/span>) []&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;-&lt;/span>&lt;span style="color:#ff7b72">chan&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> outputs &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> make([]&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;-&lt;/span>&lt;span style="color:#ff7b72">chan&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span>, workers)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">for&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>; i &amp;lt; workers; i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> output &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> make(&lt;span style="color:#ff7b72">chan&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> outputs[i] = output
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">go&lt;/span> &lt;span style="color:#ff7b72">func&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">for&lt;/span> n &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#ff7b72">range&lt;/span> input {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> output &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;-&lt;/span> n &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> &lt;span style="color:#a5d6ff">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> close(output)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> outputs
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="common-patterns">Common Patterns&lt;/h2>
&lt;h3 id="singleton-pattern">Singleton Pattern&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">type&lt;/span> singleton &lt;span style="color:#ff7b72">struct&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> data &lt;span style="color:#ff7b72">string&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> instance &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>singleton
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> once sync.Once
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">GetInstance&lt;/span>() &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>singleton {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> once.&lt;span style="color:#d2a8ff;font-weight:bold">Do&lt;/span>(&lt;span style="color:#ff7b72">func&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> instance = &lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>singleton{data: &lt;span style="color:#a5d6ff">&amp;#34;singleton&amp;#34;&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> })
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> instance
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="factory-pattern">Factory Pattern&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">type&lt;/span> Shape &lt;span style="color:#ff7b72">interface&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">Draw&lt;/span>()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">type&lt;/span> Circle &lt;span style="color:#ff7b72">struct&lt;/span>{}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> (c Circle) &lt;span style="color:#d2a8ff;font-weight:bold">Draw&lt;/span>() { fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Drawing circle&amp;#34;&lt;/span>) }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">type&lt;/span> Rectangle &lt;span style="color:#ff7b72">struct&lt;/span>{}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> (r Rectangle) &lt;span style="color:#d2a8ff;font-weight:bold">Draw&lt;/span>() { fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Println&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Drawing rectangle&amp;#34;&lt;/span>) }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">CreateShape&lt;/span>(shapeType &lt;span style="color:#ff7b72">string&lt;/span>) Shape {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">switch&lt;/span> shapeType {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">case&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;circle&amp;#34;&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> Circle{}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">case&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;rectangle&amp;#34;&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> Rectangle{}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">default&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#79c0ff">nil&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="observer-pattern">Observer Pattern&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">type&lt;/span> Observer &lt;span style="color:#ff7b72">interface&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">Update&lt;/span>(&lt;span style="color:#ff7b72">string&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">type&lt;/span> Subject &lt;span style="color:#ff7b72">struct&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> observers []Observer
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> (s &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>Subject) &lt;span style="color:#d2a8ff;font-weight:bold">Attach&lt;/span>(o Observer) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> s.observers = append(s.observers, o)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> (s &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>Subject) &lt;span style="color:#d2a8ff;font-weight:bold">Notify&lt;/span>(message &lt;span style="color:#ff7b72">string&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">for&lt;/span> _, observer &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#ff7b72">range&lt;/span> s.observers {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> observer.&lt;span style="color:#d2a8ff;font-weight:bold">Update&lt;/span>(message)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="build-and-deployment">Build and Deployment&lt;/h2>
&lt;h3 id="build-options">Build Options&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Build for current platform&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go build
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Build for specific platform&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#79c0ff">GOOS&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>linux &lt;span style="color:#79c0ff">GOARCH&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>amd64 go build
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Build with optimizations&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go build -ldflags&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;-s -w&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Build with version info&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go build -ldflags&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;-X main.version=1.0.0&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="modules">Modules&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Initialize module&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go mod init myproject
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Add dependency&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go get github.com/gorilla/mux@v1.8.0
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Update dependencies&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go get -u
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Remove unused dependencies&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go mod tidy
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Create vendor directory&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go mod vendor
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="quick-reference">Quick Reference&lt;/h2>
&lt;h3 id="basic-syntax-1">Basic Syntax&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Variable declaration&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> name &lt;span style="color:#ff7b72">string&lt;/span> = &lt;span style="color:#a5d6ff">&amp;#34;value&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>name &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;value&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Function declaration&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">func&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">name&lt;/span>(params) returnType {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> value
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Struct declaration&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">type&lt;/span> Name &lt;span style="color:#ff7b72">struct&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> field &lt;span style="color:#ff7b72">type&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Interface declaration&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">type&lt;/span> Name &lt;span style="color:#ff7b72">interface&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">Method&lt;/span>() returnType
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="common-operations">Common Operations&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Slices&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>append(slice, element)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>copy(dest, src)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>len(slice)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cap(slice)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Maps&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>make(&lt;span style="color:#ff7b72">map&lt;/span>[keyType]valueType)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>delete(&lt;span style="color:#ff7b72">map&lt;/span>, key)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>value, ok &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#ff7b72">map&lt;/span>[key]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Channels&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>make(&lt;span style="color:#ff7b72">chan&lt;/span> &lt;span style="color:#ff7b72">type&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>make(&lt;span style="color:#ff7b72">chan&lt;/span> &lt;span style="color:#ff7b72">type&lt;/span>, capacity)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>close(channel)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;-&lt;/span>channel &lt;span style="color:#8b949e;font-style:italic">// receive&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>channel &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;-&lt;/span> value &lt;span style="color:#8b949e;font-style:italic">// send&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="error-handling-2">Error Handling&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> err &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> &lt;span style="color:#79c0ff">nil&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> err
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Wrap error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">return&lt;/span> fmt.&lt;span style="color:#d2a8ff;font-weight:bold">Errorf&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;operation failed: %w&amp;#34;&lt;/span>, err)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="concurrency-1">Concurrency&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Goroutine&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">go&lt;/span> &lt;span style="color:#ff7b72">func&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// concurrent code&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Channel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ch &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> make(&lt;span style="color:#ff7b72">chan&lt;/span> &lt;span style="color:#ff7b72">int&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">go&lt;/span> &lt;span style="color:#ff7b72">func&lt;/span>() { ch &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;-&lt;/span> &lt;span style="color:#a5d6ff">42&lt;/span> }()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>value &lt;span style="color:#ff7b72;font-weight:bold">:=&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;-&lt;/span>ch
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Select&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">select&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">case&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;-&lt;/span>ch1:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// handle ch1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">case&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;-&lt;/span>ch2:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// handle ch2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">default&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// no channel ready&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="see-also">See Also&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://golang.org/doc/">Go Documentation&lt;/a> - Official documentation&lt;/li>
&lt;li>&lt;a href="https://golang.org/doc/effective_go.html">Effective Go&lt;/a> - Best practices&lt;/li>
&lt;li>&lt;a href="https://gobyexample.com/">Go by Example&lt;/a> - Practical examples&lt;/li>
&lt;li>&lt;a href="https://tour.golang.org/">A Tour of Go&lt;/a> - Interactive tutorial&lt;/li>
&lt;li>&lt;code>go help&lt;/code> - Built-in help system&lt;/li>
&lt;li>&lt;code>go doc&lt;/code> - Documentation tool&lt;/li>
&lt;/ul></description></item><item><title>Java</title><link>http://qref.eknath.dev/programming/java/</link><pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate><guid>http://qref.eknath.dev/programming/java/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>Java is a high-level, object-oriented programming language designed for platform independence. It&amp;rsquo;s widely used for enterprise applications, Android development, web services, and large-scale systems.&lt;/p>
&lt;h2 id="installation">Installation&lt;/h2>
&lt;h3 id="java-development-kit-jdk">Java Development Kit (JDK)&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Ubuntu/Debian&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo apt install openjdk-11-jdk
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># macOS&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>brew install openjdk@11
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Windows&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Download from https://adoptium.net/&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Verify installation&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>java -version
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>javac -version
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="build-tools">Build Tools&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Maven&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo apt install maven
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>mvn --version
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Gradle&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo apt install gradle
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gradle --version
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="basic-syntax">Basic Syntax&lt;/h2>
&lt;h3 id="hello-world">Hello World&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">HelloWorld&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">static&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">main&lt;/span>(String&lt;span style="color:#ff7b72;font-weight:bold">[]&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>args)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;Hello, World!&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="compilation-and-execution">Compilation and Execution&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Compile&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>javac HelloWorld.java
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Run&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>java HelloWorld
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Run with classpath&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>java -cp . HelloWorld
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="data-types">Data Types&lt;/h2>
&lt;h3 id="primitive-types">Primitive Types&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Integer types&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">byte&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>127;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// 8-bit signed (-128 to 127)&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">short&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>s&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>32767;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// 16-bit signed&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>i&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>2147483647;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// 32-bit signed&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">long&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>l&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>9223372036854775807L;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// 64-bit signed&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Floating point&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">float&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>f&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>3.14f;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// 32-bit IEEE 754&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">double&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>d&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>3.14159265359;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// 64-bit IEEE 754&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Character and boolean&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">char&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>c&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#39;A&amp;#39;&lt;/span>;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// 16-bit Unicode&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">boolean&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>flag&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#79c0ff">true&lt;/span>;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// true or false&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="reference-types">Reference Types&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Strings&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>name&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>message&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>String(&lt;span style="color:#a5d6ff">&amp;#34;Hello&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Arrays&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">[]&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>numbers&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{1,&lt;span style="color:#6e7681"> &lt;/span>2,&lt;span style="color:#6e7681"> &lt;/span>3,&lt;span style="color:#6e7681"> &lt;/span>4,&lt;span style="color:#6e7681"> &lt;/span>5};&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#ff7b72;font-weight:bold">[]&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>names&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>String&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span>10&lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Object references&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Object&lt;span style="color:#6e7681"> &lt;/span>obj&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Object();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>str&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#79c0ff">null&lt;/span>;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// null reference&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="type-conversion">Type Conversion&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Implicit conversion (widening)&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>i&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>42;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">double&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>d&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>i;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// int to double&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Explicit conversion (narrowing)&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">double&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>d&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>3.14;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>i&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>)&lt;span style="color:#6e7681"> &lt;/span>d;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// double to int&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// String conversion&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>str&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>String.valueOf(42);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>num&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Integer.parseInt(&lt;span style="color:#a5d6ff">&amp;#34;123&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">double&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>value&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Double.parseDouble(&lt;span style="color:#a5d6ff">&amp;#34;3.14&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="variables-and-constants">Variables and Constants&lt;/h2>
&lt;h3 id="variable-declaration">Variable Declaration&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Declaration and initialization&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>number&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>42;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>name&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Alice&amp;#34;&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Multiple declarations&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>x&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>10,&lt;span style="color:#6e7681"> &lt;/span>y&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>20,&lt;span style="color:#6e7681"> &lt;/span>z&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>30;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Final variables (constants)&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">final&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>MAX_SIZE&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>100;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">final&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">double&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>PI&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>3.14159;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Static variables&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">static&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>counter&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>0;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="variable-scope">Variable Scope&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">ScopeExample&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Instance variable&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>instanceVar&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>10;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Class variable&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">static&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>classVar&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>20;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">method&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Local variable&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>localVar&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>30;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Block scope&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>blockVar&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>40;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// blockVar is accessible here&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// blockVar is not accessible here&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="operators">Operators&lt;/h2>
&lt;h3 id="arithmetic-operators">Arithmetic Operators&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>10,&lt;span style="color:#6e7681"> &lt;/span>b&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>3;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>sum&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Addition: 13&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>diff&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Subtraction: 7&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>product&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Multiplication: 30&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>quotient&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">/&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Division: 3&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>remainder&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">%&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Modulus: 1&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Unary operators&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>x&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>5;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>y&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>x;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Pre-increment: x=6, y=6&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>z&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>x&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Post-increment: x=7, z=6&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="comparison-and-logical-operators">Comparison and Logical Operators&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>10,&lt;span style="color:#6e7681"> &lt;/span>b&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>20;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">boolean&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>result;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Comparison&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>result&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Equal to: false&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>result&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Not equal to: true&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>result&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Less than: true&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>result&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Greater than: false&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>result&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Less than or equal: true&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>result&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Greater than or equal: false&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Logical&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>result&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#79c0ff">true&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&amp;amp;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#79c0ff">false&lt;/span>;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// AND: false&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>result&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#79c0ff">true&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">||&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#79c0ff">false&lt;/span>;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// OR: true&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>result&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">!&lt;/span>&lt;span style="color:#79c0ff">true&lt;/span>;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// NOT: false&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="bitwise-operators">Bitwise Operators&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>5;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// 101 in binary&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>3;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// 011 in binary&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>and&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// AND: 001 = 1&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>or&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">|&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// OR: 111 = 7&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>xor&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">^&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// XOR: 110 = 6&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>not&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">~&lt;/span>a;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// NOT: ...11111010 = -6&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>left&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;lt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>1;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Left shift: 1010 = 10&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>right&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>1;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Right shift: 10 = 2&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="control-structures">Control Structures&lt;/h2>
&lt;h3 id="conditionals">Conditionals&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// if-else&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>x&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>10;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">if&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(x&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>0)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;Positive&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">else&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">if&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(x&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>0)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;Negative&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">else&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;Zero&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Ternary operator&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>result&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(x&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>0)&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">?&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;positive&amp;#34;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>:&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;not positive&amp;#34;&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Switch statement&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>day&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>2;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">switch&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(day)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">case&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>1:&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;Monday&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">break&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">case&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>2:&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;Tuesday&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">break&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">default&lt;/span>:&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;Other day&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Switch expression (Java 14+)&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>dayName&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">switch&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(day)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">case&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>1&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Monday&amp;#34;&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">case&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>2&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Tuesday&amp;#34;&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">case&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>3&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Wednesday&amp;#34;&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">default&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Other day&amp;#34;&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>};&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="loops">Loops&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// for loop&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>i&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>0;&lt;span style="color:#6e7681"> &lt;/span>i&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>10;&lt;span style="color:#6e7681"> &lt;/span>i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(i);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Enhanced for loop (for-each)&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">[]&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>numbers&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{1,&lt;span style="color:#6e7681"> &lt;/span>2,&lt;span style="color:#6e7681"> &lt;/span>3,&lt;span style="color:#6e7681"> &lt;/span>4,&lt;span style="color:#6e7681"> &lt;/span>5};&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>num&lt;span style="color:#6e7681"> &lt;/span>:&lt;span style="color:#6e7681"> &lt;/span>numbers)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(num);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// while loop&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>i&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>0;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">while&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(i&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>10)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(i);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// do-while loop&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>j&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>0;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">do&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(j);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>j&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">while&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(j&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>10);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Loop control&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>i&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>0;&lt;span style="color:#6e7681"> &lt;/span>i&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>10;&lt;span style="color:#6e7681"> &lt;/span>i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">if&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(i&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>5)&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">continue&lt;/span>;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Skip iteration&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">if&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(i&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>8)&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">break&lt;/span>;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Exit loop&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(i);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="methods">Methods&lt;/h2>
&lt;h3 id="method-declaration">Method Declaration&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Calculator&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Method with return value&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">add&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">return&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Method without return value&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">printMessage&lt;/span>(String&lt;span style="color:#6e7681"> &lt;/span>message)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(message);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Method with variable arguments&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">sum&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>...&lt;span style="color:#6e7681"> &lt;/span>numbers)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>total&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>0;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">for&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>num&lt;span style="color:#6e7681"> &lt;/span>:&lt;span style="color:#6e7681"> &lt;/span>numbers)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>total&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>num;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">return&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>total;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Static method&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">static&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">double&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">calculateArea&lt;/span>(&lt;span style="color:#ff7b72">double&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>radius)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">return&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Math.PI&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>radius&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>radius;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="method-overloading">Method Overloading&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">MathUtils&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">max&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">return&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(a&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b)&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">?&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a&lt;span style="color:#6e7681"> &lt;/span>:&lt;span style="color:#6e7681"> &lt;/span>b;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">double&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">max&lt;/span>(&lt;span style="color:#ff7b72">double&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">double&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">return&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(a&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b)&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">?&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a&lt;span style="color:#6e7681"> &lt;/span>:&lt;span style="color:#6e7681"> &lt;/span>b;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">max&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>c)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">return&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>max(max(a,&lt;span style="color:#6e7681"> &lt;/span>b),&lt;span style="color:#6e7681"> &lt;/span>c);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="object-oriented-programming">Object-Oriented Programming&lt;/h2>
&lt;h3 id="classes-and-objects">Classes and Objects&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Person&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Fields (instance variables)&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>name;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>age;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Constructor&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">Person&lt;/span>(String&lt;span style="color:#6e7681"> &lt;/span>name,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>age)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">this&lt;/span>.name&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>name;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">this&lt;/span>.age&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>age;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Default constructor&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">Person&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">this&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Unknown&amp;#34;&lt;/span>,&lt;span style="color:#6e7681"> &lt;/span>0);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Getter methods&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">getName&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">return&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>name;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">getAge&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">return&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>age;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Setter methods&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">setName&lt;/span>(String&lt;span style="color:#6e7681"> &lt;/span>name)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">this&lt;/span>.name&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>name;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">setAge&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>age)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">if&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(age&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>0)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">this&lt;/span>.age&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>age;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// toString method&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">@Override&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">toString&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">return&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Person{name=&amp;#39;&amp;#34;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>name&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&amp;#39;, age=&amp;#34;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>age&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;}&amp;#34;&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Usage&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Person&lt;span style="color:#6e7681"> &lt;/span>person&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Person(&lt;span style="color:#a5d6ff">&amp;#34;Alice&amp;#34;&lt;/span>,&lt;span style="color:#6e7681"> &lt;/span>30);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>System.out.println(person.getName());&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>System.out.println(person);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="inheritance">Inheritance&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Base class&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Animal&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">protected&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>name;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">Animal&lt;/span>(String&lt;span style="color:#6e7681"> &lt;/span>name)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">this&lt;/span>.name&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>name;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">makeSound&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;Some generic sound&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">info&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;I am &amp;#34;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>name);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Derived class&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Dog&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">extends&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Animal&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>breed;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">Dog&lt;/span>(String&lt;span style="color:#6e7681"> &lt;/span>name,&lt;span style="color:#6e7681"> &lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>breed)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">super&lt;/span>(name);&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Call parent constructor&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">this&lt;/span>.breed&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>breed;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">@Override&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">makeSound&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;Woof!&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">@Override&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">info&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">super&lt;/span>.info();&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Call parent method&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;I am a &amp;#34;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>breed);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="polymorphism">Polymorphism&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Using inheritance polymorphism&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Animal&lt;span style="color:#ff7b72;font-weight:bold">[]&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>animals&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Dog(&lt;span style="color:#a5d6ff">&amp;#34;Buddy&amp;#34;&lt;/span>,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Golden Retriever&amp;#34;&lt;/span>),&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Cat(&lt;span style="color:#a5d6ff">&amp;#34;Whiskers&amp;#34;&lt;/span>,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Persian&amp;#34;&lt;/span>),&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Animal(&lt;span style="color:#a5d6ff">&amp;#34;Generic&amp;#34;&lt;/span>)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>};&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(Animal&lt;span style="color:#6e7681"> &lt;/span>animal&lt;span style="color:#6e7681"> &lt;/span>:&lt;span style="color:#6e7681"> &lt;/span>animals)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>animal.makeSound();&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Polymorphic call&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Interface polymorphism&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">interface&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Drawable&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">draw&lt;/span>();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Circle&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">implements&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Drawable&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">draw&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;Drawing a circle&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Rectangle&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">implements&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Drawable&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">draw&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;Drawing a rectangle&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="abstract-classes-and-interfaces">Abstract Classes and Interfaces&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Abstract class&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">abstract&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Shape&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">protected&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>color;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">Shape&lt;/span>(String&lt;span style="color:#6e7681"> &lt;/span>color)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">this&lt;/span>.color&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>color;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Abstract method&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">abstract&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">double&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">getArea&lt;/span>();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Concrete method&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">displayColor&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;Color: &amp;#34;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>color);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Interface&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">interface&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Drawable&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">draw&lt;/span>();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Default method (Java 8+)&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">default&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">highlight&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;Highlighting shape&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Static method (Java 8+)&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">static&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">printInfo&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;This is a drawable shape&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Implementation&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Circle&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">extends&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Shape&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">implements&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Drawable&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">double&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>radius;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">Circle&lt;/span>(String&lt;span style="color:#6e7681"> &lt;/span>color,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">double&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>radius)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">super&lt;/span>(color);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">this&lt;/span>.radius&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>radius;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">@Override&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">double&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">getArea&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">return&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Math.PI&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>radius&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>radius;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">@Override&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">draw&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;Drawing a circle&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="arrays">Arrays&lt;/h2>
&lt;h3 id="array-declaration-and-initialization">Array Declaration and Initialization&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Declaration&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">[]&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>numbers;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#ff7b72;font-weight:bold">[]&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>names;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Initialization&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>numbers&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span>5&lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span>;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Array of 5 integers&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>names&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>String&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span>3&lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span>;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Array of 3 strings&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Declaration and initialization&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">[]&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>values&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{1,&lt;span style="color:#6e7681"> &lt;/span>2,&lt;span style="color:#6e7681"> &lt;/span>3,&lt;span style="color:#6e7681"> &lt;/span>4,&lt;span style="color:#6e7681"> &lt;/span>5};&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#ff7b72;font-weight:bold">[]&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>colors&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#a5d6ff">&amp;#34;red&amp;#34;&lt;/span>,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;green&amp;#34;&lt;/span>,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;blue&amp;#34;&lt;/span>};&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">[]&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>data&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">[]&lt;/span>{10,&lt;span style="color:#6e7681"> &lt;/span>20,&lt;span style="color:#6e7681"> &lt;/span>30};&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Array properties&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>length&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>numbers.length;&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Array length&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="array-operations">Array Operations&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">[]&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>numbers&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{1,&lt;span style="color:#6e7681"> &lt;/span>2,&lt;span style="color:#6e7681"> &lt;/span>3,&lt;span style="color:#6e7681"> &lt;/span>4,&lt;span style="color:#6e7681"> &lt;/span>5};&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Access elements&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>first&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>numbers&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span>0&lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>last&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>numbers&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span>numbers.length&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>1&lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Modify elements&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>numbers&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span>0&lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>10;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Iterate through array&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>i&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>0;&lt;span style="color:#6e7681"> &lt;/span>i&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>numbers.length;&lt;span style="color:#6e7681"> &lt;/span>i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(numbers&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span>i&lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Enhanced for loop&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>num&lt;span style="color:#6e7681"> &lt;/span>:&lt;span style="color:#6e7681"> &lt;/span>numbers)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(num);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Array utilities&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">import&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">java.util.Arrays&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Arrays.sort(numbers);&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Sort array&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>str&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Arrays.toString(numbers);&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Convert to string&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">[]&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>copy&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Arrays.copyOf(numbers,&lt;span style="color:#6e7681"> &lt;/span>numbers.length);&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Copy array&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="multi-dimensional-arrays">Multi-dimensional Arrays&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// 2D array&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">[][]&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>matrix&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span>3&lt;span style="color:#ff7b72;font-weight:bold">][&lt;/span>3&lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">[][]&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>values&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{{1,&lt;span style="color:#6e7681"> &lt;/span>2,&lt;span style="color:#6e7681"> &lt;/span>3},&lt;span style="color:#6e7681"> &lt;/span>{4,&lt;span style="color:#6e7681"> &lt;/span>5,&lt;span style="color:#6e7681"> &lt;/span>6},&lt;span style="color:#6e7681"> &lt;/span>{7,&lt;span style="color:#6e7681"> &lt;/span>8,&lt;span style="color:#6e7681"> &lt;/span>9}};&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Access elements&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>element&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>matrix&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span>1&lt;span style="color:#ff7b72;font-weight:bold">][&lt;/span>2&lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Iterate through 2D array&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>i&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>0;&lt;span style="color:#6e7681"> &lt;/span>i&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>matrix.length;&lt;span style="color:#6e7681"> &lt;/span>i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">for&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>j&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>0;&lt;span style="color:#6e7681"> &lt;/span>j&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>matrix&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span>i&lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span>.length;&lt;span style="color:#6e7681"> &lt;/span>j&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.print(matrix&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span>i&lt;span style="color:#ff7b72;font-weight:bold">][&lt;/span>j&lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34; &amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Enhanced for loop for 2D array&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">[]&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>row&lt;span style="color:#6e7681"> &lt;/span>:&lt;span style="color:#6e7681"> &lt;/span>matrix)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">for&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>element&lt;span style="color:#6e7681"> &lt;/span>:&lt;span style="color:#6e7681"> &lt;/span>row)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.print(element&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34; &amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="strings">Strings&lt;/h2>
&lt;h3 id="string-operations">String Operations&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>String&lt;span style="color:#6e7681"> &lt;/span>str&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Hello, World!&amp;#34;&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// String methods&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>length&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>str.length();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">char&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>ch&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>str.charAt(0);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>upper&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>str.toUpperCase();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>lower&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>str.toLowerCase();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>trimmed&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>str.trim();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>replaced&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>str.replace(&lt;span style="color:#a5d6ff">&amp;#34;World&amp;#34;&lt;/span>,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Java&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#ff7b72;font-weight:bold">[]&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>parts&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>str.split(&lt;span style="color:#a5d6ff">&amp;#34;,&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">boolean&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>starts&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>str.startsWith(&lt;span style="color:#a5d6ff">&amp;#34;Hello&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">boolean&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>ends&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>str.endsWith(&lt;span style="color:#a5d6ff">&amp;#34;!&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>index&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>str.indexOf(&lt;span style="color:#a5d6ff">&amp;#34;World&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>substring&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>str.substring(0,&lt;span style="color:#6e7681"> &lt;/span>5);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="string-comparison">String Comparison&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>String&lt;span style="color:#6e7681"> &lt;/span>str1&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Hello&amp;#34;&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>str2&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Hello&amp;#34;&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>str3&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>String(&lt;span style="color:#a5d6ff">&amp;#34;Hello&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Reference comparison&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">boolean&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>same&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(str1&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>str2);&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// true (string pool)&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">boolean&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>different&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(str1&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>str3);&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// false (different objects)&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Content comparison&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">boolean&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>equal&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>str1.equals(str2);&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// true&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">boolean&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>equalIgnoreCase&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>str1.equalsIgnoreCase(&lt;span style="color:#a5d6ff">&amp;#34;HELLO&amp;#34;&lt;/span>);&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// true&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>comparison&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>str1.compareTo(str2);&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// 0 (equal)&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="string-building">String Building&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// StringBuilder (mutable)&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>StringBuilder&lt;span style="color:#6e7681"> &lt;/span>sb&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>StringBuilder();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>sb.append(&lt;span style="color:#a5d6ff">&amp;#34;Hello&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>sb.append(&lt;span style="color:#a5d6ff">&amp;#34; &amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>sb.append(&lt;span style="color:#a5d6ff">&amp;#34;World&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>result&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>sb.toString();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// StringBuffer (thread-safe)&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>StringBuffer&lt;span style="color:#6e7681"> &lt;/span>buffer&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>StringBuffer();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>buffer.append(&lt;span style="color:#a5d6ff">&amp;#34;Thread-safe&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>buffer.append(&lt;span style="color:#a5d6ff">&amp;#34; string building&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// String formatting&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>formatted&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>String.format(&lt;span style="color:#a5d6ff">&amp;#34;Name: %s, Age: %d&amp;#34;&lt;/span>,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Alice&amp;#34;&lt;/span>,&lt;span style="color:#6e7681"> &lt;/span>30);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="collections-framework">Collections Framework&lt;/h2>
&lt;h3 id="list-interface">List Interface&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">java.util.*&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// ArrayList&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>List&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>String&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>list&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>ArrayList&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;gt;&lt;/span>();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>list.add(&lt;span style="color:#a5d6ff">&amp;#34;Apple&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>list.add(&lt;span style="color:#a5d6ff">&amp;#34;Banana&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>list.add(&lt;span style="color:#a5d6ff">&amp;#34;Cherry&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// LinkedList&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>List&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>Integer&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>linkedList&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>LinkedList&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;gt;&lt;/span>();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>linkedList.add(1);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>linkedList.add(2);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>linkedList.add(3);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// List operations&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>first&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>list.get(0);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>list.set(0,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Apricot&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>list.remove(1);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">boolean&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>contains&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>list.contains(&lt;span style="color:#a5d6ff">&amp;#34;Cherry&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>size&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>list.size();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Iteration&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(String&lt;span style="color:#6e7681"> &lt;/span>item&lt;span style="color:#6e7681"> &lt;/span>:&lt;span style="color:#6e7681"> &lt;/span>list)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(item);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Lambda expression (Java 8+)&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>list.forEach(System.out::println);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="set-interface">Set Interface&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// HashSet&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Set&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>String&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>set&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>HashSet&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;gt;&lt;/span>();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>set.add(&lt;span style="color:#a5d6ff">&amp;#34;Apple&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>set.add(&lt;span style="color:#a5d6ff">&amp;#34;Banana&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>set.add(&lt;span style="color:#a5d6ff">&amp;#34;Apple&amp;#34;&lt;/span>);&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Duplicate, won&amp;#39;t be added&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// TreeSet (sorted)&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Set&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>Integer&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>treeSet&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>TreeSet&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;gt;&lt;/span>();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>treeSet.add(3);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>treeSet.add(1);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>treeSet.add(2);&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Will be stored as [1, 2, 3]&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Set operations&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">boolean&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>added&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>set.add(&lt;span style="color:#a5d6ff">&amp;#34;Cherry&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">boolean&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>removed&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>set.remove(&lt;span style="color:#a5d6ff">&amp;#34;Banana&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">boolean&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>contains&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>set.contains(&lt;span style="color:#a5d6ff">&amp;#34;Apple&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="map-interface">Map Interface&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// HashMap&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Map&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>String,&lt;span style="color:#6e7681"> &lt;/span>Integer&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>map&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>HashMap&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;gt;&lt;/span>();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>map.put(&lt;span style="color:#a5d6ff">&amp;#34;apple&amp;#34;&lt;/span>,&lt;span style="color:#6e7681"> &lt;/span>5);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>map.put(&lt;span style="color:#a5d6ff">&amp;#34;banana&amp;#34;&lt;/span>,&lt;span style="color:#6e7681"> &lt;/span>3);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>map.put(&lt;span style="color:#a5d6ff">&amp;#34;cherry&amp;#34;&lt;/span>,&lt;span style="color:#6e7681"> &lt;/span>8);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// TreeMap (sorted by keys)&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Map&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>String,&lt;span style="color:#6e7681"> &lt;/span>Integer&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>treeMap&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>TreeMap&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;gt;&lt;/span>();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Map operations&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Integer&lt;span style="color:#6e7681"> &lt;/span>value&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>map.get(&lt;span style="color:#a5d6ff">&amp;#34;apple&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Integer&lt;span style="color:#6e7681"> &lt;/span>defaultValue&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>map.getOrDefault(&lt;span style="color:#a5d6ff">&amp;#34;grape&amp;#34;&lt;/span>,&lt;span style="color:#6e7681"> &lt;/span>0);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">boolean&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>containsKey&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>map.containsKey(&lt;span style="color:#a5d6ff">&amp;#34;banana&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">boolean&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>containsValue&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>map.containsValue(5);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>map.remove(&lt;span style="color:#a5d6ff">&amp;#34;cherry&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Iteration&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(Map.Entry&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>String,&lt;span style="color:#6e7681"> &lt;/span>Integer&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>entry&lt;span style="color:#6e7681"> &lt;/span>:&lt;span style="color:#6e7681"> &lt;/span>map.entrySet())&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(entry.getKey()&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;: &amp;#34;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>entry.getValue());&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Lambda iteration (Java 8+)&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>map.forEach((key,&lt;span style="color:#6e7681"> &lt;/span>value)&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(key&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;: &amp;#34;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>value));&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="queue-interface">Queue Interface&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// LinkedList as Queue&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Queue&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>String&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>queue&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>LinkedList&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;gt;&lt;/span>();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>queue.offer(&lt;span style="color:#a5d6ff">&amp;#34;First&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>queue.offer(&lt;span style="color:#a5d6ff">&amp;#34;Second&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>queue.offer(&lt;span style="color:#a5d6ff">&amp;#34;Third&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>head&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>queue.poll();&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Remove and return head&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>peek&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>queue.peek();&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Return head without removing&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// PriorityQueue&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Queue&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>Integer&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>priorityQueue&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>PriorityQueue&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;gt;&lt;/span>();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>priorityQueue.offer(3);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>priorityQueue.offer(1);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>priorityQueue.offer(2);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Elements will be retrieved in sorted order&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="exception-handling">Exception Handling&lt;/h2>
&lt;h3 id="try-catch-finally">Try-Catch-Finally&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">try&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>result&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>10&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">/&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>0;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(result);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">catch&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(ArithmeticException&lt;span style="color:#6e7681"> &lt;/span>e)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;Division by zero: &amp;#34;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>e.getMessage());&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">catch&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(Exception&lt;span style="color:#6e7681"> &lt;/span>e)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;General exception: &amp;#34;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>e.getMessage());&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">finally&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;This always executes&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="custom-exceptions">Custom Exceptions&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">CustomException&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">extends&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Exception&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">CustomException&lt;/span>(String&lt;span style="color:#6e7681"> &lt;/span>message)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">super&lt;/span>(message);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">ValidationException&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">extends&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>RuntimeException&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">ValidationException&lt;/span>(String&lt;span style="color:#6e7681"> &lt;/span>message)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">super&lt;/span>(message);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Usage&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">validateAge&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>age)&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">throws&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>CustomException&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">if&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(age&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>0)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">throw&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>CustomException(&lt;span style="color:#a5d6ff">&amp;#34;Age cannot be negative&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">if&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(age&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>150)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">throw&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>CustomException(&lt;span style="color:#a5d6ff">&amp;#34;Age seems unrealistic&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="try-with-resources">Try-with-Resources&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">java.io.*&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Automatic resource management&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">try&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(BufferedReader&lt;span style="color:#6e7681"> &lt;/span>reader&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>BufferedReader(&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>FileReader(&lt;span style="color:#a5d6ff">&amp;#34;file.txt&amp;#34;&lt;/span>)))&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>line;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">while&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>((line&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>reader.readLine())&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#79c0ff">null&lt;/span>)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(line);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">catch&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(IOException&lt;span style="color:#6e7681"> &lt;/span>e)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>e.printStackTrace();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// reader is automatically closed&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="file-io">File I/O&lt;/h2>
&lt;h3 id="file-operations">File Operations&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">java.io.*&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">import&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">java.nio.file.*&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Reading files&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">try&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Read entire file&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>content&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>String(Files.readAllBytes(Paths.get(&lt;span style="color:#a5d6ff">&amp;#34;file.txt&amp;#34;&lt;/span>)));&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Read lines&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>List&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>String&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>lines&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Files.readAllLines(Paths.get(&lt;span style="color:#a5d6ff">&amp;#34;file.txt&amp;#34;&lt;/span>));&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Read with BufferedReader&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">try&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(BufferedReader&lt;span style="color:#6e7681"> &lt;/span>reader&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Files.newBufferedReader(Paths.get(&lt;span style="color:#a5d6ff">&amp;#34;file.txt&amp;#34;&lt;/span>)))&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>line;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">while&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>((line&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>reader.readLine())&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#79c0ff">null&lt;/span>)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(line);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">catch&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(IOException&lt;span style="color:#6e7681"> &lt;/span>e)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>e.printStackTrace();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="writing-files">Writing Files&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">java.io.*&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">import&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">java.nio.file.*&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Writing files&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">try&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Write string to file&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>Files.write(Paths.get(&lt;span style="color:#a5d6ff">&amp;#34;output.txt&amp;#34;&lt;/span>),&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Hello, World!&amp;#34;&lt;/span>.getBytes());&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Write lines to file&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>List&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>String&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>lines&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Arrays.asList(&lt;span style="color:#a5d6ff">&amp;#34;Line 1&amp;#34;&lt;/span>,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Line 2&amp;#34;&lt;/span>,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Line 3&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>Files.write(Paths.get(&lt;span style="color:#a5d6ff">&amp;#34;output.txt&amp;#34;&lt;/span>),&lt;span style="color:#6e7681"> &lt;/span>lines);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Write with BufferedWriter&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">try&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(BufferedWriter&lt;span style="color:#6e7681"> &lt;/span>writer&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Files.newBufferedWriter(Paths.get(&lt;span style="color:#a5d6ff">&amp;#34;output.txt&amp;#34;&lt;/span>)))&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>writer.write(&lt;span style="color:#a5d6ff">&amp;#34;Hello, World!&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>writer.newLine();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>writer.write(&lt;span style="color:#a5d6ff">&amp;#34;Second line&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">catch&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(IOException&lt;span style="color:#6e7681"> &lt;/span>e)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>e.printStackTrace();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="generics">Generics&lt;/h2>
&lt;h3 id="generic-classes">Generic Classes&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Box&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>T&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>T&lt;span style="color:#6e7681"> &lt;/span>content;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">set&lt;/span>(T&lt;span style="color:#6e7681"> &lt;/span>content)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">this&lt;/span>.content&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>content;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>T&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">get&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">return&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>content;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Usage&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Box&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>String&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>stringBox&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Box&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;gt;&lt;/span>();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>stringBox.set(&lt;span style="color:#a5d6ff">&amp;#34;Hello&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>value&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>stringBox.get();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Box&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>Integer&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>intBox&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Box&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;gt;&lt;/span>();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>intBox.set(42);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Integer&lt;span style="color:#6e7681"> &lt;/span>number&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>intBox.get();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="generic-methods">Generic Methods&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Utility&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">static&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>T&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">swap&lt;/span>(T&lt;span style="color:#ff7b72;font-weight:bold">[]&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>array,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>i,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>j)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>T&lt;span style="color:#6e7681"> &lt;/span>temp&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>array&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span>i&lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>array&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span>i&lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>array&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span>j&lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>array&lt;span style="color:#ff7b72;font-weight:bold">[&lt;/span>j&lt;span style="color:#ff7b72;font-weight:bold">]&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>temp;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">static&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>T&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">extends&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Comparable&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>T&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>T&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">max&lt;/span>(T&lt;span style="color:#6e7681"> &lt;/span>a,&lt;span style="color:#6e7681"> &lt;/span>T&lt;span style="color:#6e7681"> &lt;/span>b)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">return&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(a.compareTo(b)&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>0)&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">?&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a&lt;span style="color:#6e7681"> &lt;/span>:&lt;span style="color:#6e7681"> &lt;/span>b;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Usage&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#ff7b72;font-weight:bold">[]&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>strings&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#a5d6ff">&amp;#34;apple&amp;#34;&lt;/span>,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;banana&amp;#34;&lt;/span>,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;cherry&amp;#34;&lt;/span>};&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Utility.swap(strings,&lt;span style="color:#6e7681"> &lt;/span>0,&lt;span style="color:#6e7681"> &lt;/span>2);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>max&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Utility.max(&lt;span style="color:#a5d6ff">&amp;#34;apple&amp;#34;&lt;/span>,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;banana&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="wildcards">Wildcards&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Upper bounded wildcard&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>List&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;?&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">extends&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Number&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>numbers&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>ArrayList&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>Integer&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Lower bounded wildcard&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>List&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;?&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">super&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Integer&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>integers&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>ArrayList&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>Number&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Unbounded wildcard&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>List&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;?&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>objects&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>ArrayList&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>String&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Generic method with wildcards&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">static&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">printList&lt;/span>(List&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;?&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>list)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">for&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(Object&lt;span style="color:#6e7681"> &lt;/span>item&lt;span style="color:#6e7681"> &lt;/span>:&lt;span style="color:#6e7681"> &lt;/span>list)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(item);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="lambda-expressions-and-streams">Lambda Expressions and Streams&lt;/h2>
&lt;h3 id="lambda-expressions">Lambda Expressions&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Traditional anonymous class&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Runnable&lt;span style="color:#6e7681"> &lt;/span>r1&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Runnable()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">@Override&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">run&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;Hello&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>};&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Lambda expression&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Runnable&lt;span style="color:#6e7681"> &lt;/span>r2&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;Hello&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Lambda with parameters&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Comparator&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>String&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>comp&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(s1,&lt;span style="color:#6e7681"> &lt;/span>s2)&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>s1.compareTo(s2);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Method reference&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Comparator&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>String&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>comp2&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>String::compareTo;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="streams">Streams&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">java.util.stream.*&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>List&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>Integer&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>numbers&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Arrays.asList(1,&lt;span style="color:#6e7681"> &lt;/span>2,&lt;span style="color:#6e7681"> &lt;/span>3,&lt;span style="color:#6e7681"> &lt;/span>4,&lt;span style="color:#6e7681"> &lt;/span>5,&lt;span style="color:#6e7681"> &lt;/span>6,&lt;span style="color:#6e7681"> &lt;/span>7,&lt;span style="color:#6e7681"> &lt;/span>8,&lt;span style="color:#6e7681"> &lt;/span>9,&lt;span style="color:#6e7681"> &lt;/span>10);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Filter and collect&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>List&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>Integer&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>evens&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>numbers.stream()&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>.filter(n&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>n&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">%&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>2&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>0)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>.collect(Collectors.toList());&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Map and reduce&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>sum&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>numbers.stream()&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>.mapToInt(Integer::intValue)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>.sum();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Complex operations&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>List&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>String&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>words&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Arrays.asList(&lt;span style="color:#a5d6ff">&amp;#34;apple&amp;#34;&lt;/span>,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;banana&amp;#34;&lt;/span>,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;cherry&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>List&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>String&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>result&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>words.stream()&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>.filter(word&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>word.length()&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>5)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>.map(String::toUpperCase)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>.sorted()&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>.collect(Collectors.toList());&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Parallel streams&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">long&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>count&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>numbers.parallelStream()&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>.filter(n&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>n&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>5)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>.count();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="multithreading">Multithreading&lt;/h2>
&lt;h3 id="thread-creation">Thread Creation&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Extending Thread class&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">MyThread&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">extends&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Thread&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">@Override&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">run&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;Thread running: &amp;#34;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>getName());&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Implementing Runnable interface&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">MyRunnable&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">implements&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Runnable&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">@Override&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">run&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;Runnable running: &amp;#34;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Thread.currentThread().getName());&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Usage&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Thread&lt;span style="color:#6e7681"> &lt;/span>thread1&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>MyThread();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Thread&lt;span style="color:#6e7681"> &lt;/span>thread2&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Thread(&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>MyRunnable());&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Thread&lt;span style="color:#6e7681"> &lt;/span>thread3&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Thread(()&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(&lt;span style="color:#a5d6ff">&amp;#34;Lambda thread&amp;#34;&lt;/span>));&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>thread1.start();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>thread2.start();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>thread3.start();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="thread-synchronization">Thread Synchronization&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Counter&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>count&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>0;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Synchronized method&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">synchronized&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">increment&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>count&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Synchronized block&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">increment2&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">synchronized&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(&lt;span style="color:#ff7b72">this&lt;/span>)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>count&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">getCount&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">return&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>count;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Using locks&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">import&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">java.util.concurrent.locks.Lock&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">import&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">java.util.concurrent.locks.ReentrantLock&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">LockCounter&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>count&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>0;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">final&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Lock&lt;span style="color:#6e7681"> &lt;/span>lock&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>ReentrantLock();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">increment&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>lock.lock();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">try&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>count&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">finally&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>lock.unlock();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="executor-framework">Executor Framework&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">java.util.concurrent.*&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Create thread pool&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>ExecutorService&lt;span style="color:#6e7681"> &lt;/span>executor&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Executors.newFixedThreadPool(5);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Submit tasks&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Future&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>String&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>future&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>executor.submit(()&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>Thread.sleep(1000);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">return&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Task completed&amp;#34;&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>});&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Get result&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">try&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>result&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>future.get();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(result);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">catch&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(InterruptedException&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">|&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>ExecutionException&lt;span style="color:#6e7681"> &lt;/span>e)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>e.printStackTrace();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Shutdown executor&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>executor.shutdown();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="package-and-module-system">Package and Module System&lt;/h2>
&lt;h3 id="package-declaration">Package Declaration&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// File: com/example/util/StringUtils.java&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">package&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">com.example.util&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">StringUtils&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">static&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">reverse&lt;/span>(String&lt;span style="color:#6e7681"> &lt;/span>str)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">return&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>StringBuilder(str).reverse().toString();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="import-statements">Import Statements&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Specific import&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">import&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">com.example.util.StringUtils&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Wildcard import&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">import&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">java.util.*&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Static import&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">import static&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">java.lang.Math.PI&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">import static&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">java.lang.Math.sqrt&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Usage&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">double&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>area&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>PI&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>sqrt(25);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="module-system-java-9">Module System (Java 9+)&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// module-info.java&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>module&lt;span style="color:#6e7681"> &lt;/span>com.example.app&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>requires&lt;span style="color:#6e7681"> &lt;/span>java.base;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>requires&lt;span style="color:#6e7681"> &lt;/span>java.logging;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>exports&lt;span style="color:#6e7681"> &lt;/span>com.example.app.api;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>opens&lt;span style="color:#6e7681"> &lt;/span>com.example.app.model&lt;span style="color:#6e7681"> &lt;/span>to&lt;span style="color:#6e7681"> &lt;/span>gson;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="best-practices">Best Practices&lt;/h2>
&lt;h3 id="code-organization">Code Organization&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Good class structure&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Employee&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Constants&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">static&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">final&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>COMPANY_NAME&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;TechCorp&amp;#34;&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Class variables&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">static&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>employeeCount&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>0;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Instance variables&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>name;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>id;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">double&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>salary;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Constructor&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">Employee&lt;/span>(String&lt;span style="color:#6e7681"> &lt;/span>name,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>id,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">double&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>salary)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">this&lt;/span>.name&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>name;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">this&lt;/span>.id&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>id;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">this&lt;/span>.salary&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>salary;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>employeeCount&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Getters and setters&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">getName&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">return&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>name;&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">setName&lt;/span>(String&lt;span style="color:#6e7681"> &lt;/span>name)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">this&lt;/span>.name&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>name;&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Business methods&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">work&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>System.out.println(name&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34; is working&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Static methods&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">static&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">getEmployeeCount&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">return&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>employeeCount;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Override methods&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">@Override&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">toString&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">return&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>String.format(&lt;span style="color:#a5d6ff">&amp;#34;Employee{name=&amp;#39;%s&amp;#39;, id=%d, salary=%.2f}&amp;#34;&lt;/span>,&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>name,&lt;span style="color:#6e7681"> &lt;/span>id,&lt;span style="color:#6e7681"> &lt;/span>salary);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="documentation">Documentation&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">/**
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"> * Represents a geometric circle with radius and center point.
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"> * 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"> * @author John Doe
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"> * @version 1.0
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"> * @since 2024-01-01
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"> */&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Circle&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">double&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>radius;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">/**
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"> * Creates a new circle with the specified radius.
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"> * 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"> * @param radius the radius of the circle
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"> * @throws IllegalArgumentException if radius is negative
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"> */&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">Circle&lt;/span>(&lt;span style="color:#ff7b72">double&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>radius)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">if&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(radius&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>0)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">throw&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>IllegalArgumentException(&lt;span style="color:#a5d6ff">&amp;#34;Radius cannot be negative&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">this&lt;/span>.radius&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>radius;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">/**
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"> * Calculates and returns the area of the circle.
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"> * 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"> * @return the area of the circle
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"> */&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">double&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">getArea&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">return&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Math.PI&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>radius&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>radius;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="build-tools-1">Build Tools&lt;/h2>
&lt;h3 id="maven">Maven&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&amp;lt;!-- pom.xml --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#7ee787">&amp;lt;project&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#7ee787">&amp;lt;modelVersion&amp;gt;&lt;/span>4.0.0&lt;span style="color:#7ee787">&amp;lt;/modelVersion&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#7ee787">&amp;lt;groupId&amp;gt;&lt;/span>com.example&lt;span style="color:#7ee787">&amp;lt;/groupId&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#7ee787">&amp;lt;artifactId&amp;gt;&lt;/span>my-app&lt;span style="color:#7ee787">&amp;lt;/artifactId&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#7ee787">&amp;lt;version&amp;gt;&lt;/span>1.0-SNAPSHOT&lt;span style="color:#7ee787">&amp;lt;/version&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#7ee787">&amp;lt;packaging&amp;gt;&lt;/span>jar&lt;span style="color:#7ee787">&amp;lt;/packaging&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#7ee787">&amp;lt;properties&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#7ee787">&amp;lt;maven.compiler.source&amp;gt;&lt;/span>11&lt;span style="color:#7ee787">&amp;lt;/maven.compiler.source&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#7ee787">&amp;lt;maven.compiler.target&amp;gt;&lt;/span>11&lt;span style="color:#7ee787">&amp;lt;/maven.compiler.target&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#7ee787">&amp;lt;/properties&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#7ee787">&amp;lt;dependencies&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#7ee787">&amp;lt;dependency&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#7ee787">&amp;lt;groupId&amp;gt;&lt;/span>junit&lt;span style="color:#7ee787">&amp;lt;/groupId&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#7ee787">&amp;lt;artifactId&amp;gt;&lt;/span>junit&lt;span style="color:#7ee787">&amp;lt;/artifactId&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#7ee787">&amp;lt;version&amp;gt;&lt;/span>4.13.2&lt;span style="color:#7ee787">&amp;lt;/version&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#7ee787">&amp;lt;scope&amp;gt;&lt;/span>test&lt;span style="color:#7ee787">&amp;lt;/scope&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#7ee787">&amp;lt;/dependency&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#7ee787">&amp;lt;/dependencies&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#7ee787">&amp;lt;/project&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="gradle">Gradle&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-gradle" data-lang="gradle">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// build.gradle
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>plugins &lt;span style="color:#ff7b72;font-weight:bold">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> id &lt;span style="color:#a5d6ff">&amp;#39;java&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> id &lt;span style="color:#a5d6ff">&amp;#39;application&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>java &lt;span style="color:#ff7b72;font-weight:bold">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> sourceCompatibility &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> JavaVersion&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>VERSION_11
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> targetCompatibility &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> JavaVersion&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>VERSION_11
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>repositories &lt;span style="color:#ff7b72;font-weight:bold">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> mavenCentral&lt;span style="color:#ff7b72;font-weight:bold">()&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>dependencies &lt;span style="color:#ff7b72;font-weight:bold">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> testImplementation &lt;span style="color:#a5d6ff">&amp;#39;junit:junit:4.13.2&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> implementation &lt;span style="color:#a5d6ff">&amp;#39;com.google.gson:gson:2.8.9&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>application &lt;span style="color:#ff7b72;font-weight:bold">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> mainClass &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#39;com.example.Main&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="testing">Testing&lt;/h2>
&lt;h3 id="junit">JUnit&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">org.junit.*&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">import static&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">org.junit.Assert.*&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">CalculatorTest&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Calculator&lt;span style="color:#6e7681"> &lt;/span>calculator;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">@Before&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">setUp&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>calculator&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Calculator();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">@Test&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">testAdd&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>assertEquals(5,&lt;span style="color:#6e7681"> &lt;/span>calculator.add(2,&lt;span style="color:#6e7681"> &lt;/span>3));&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>assertEquals(0,&lt;span style="color:#6e7681"> &lt;/span>calculator.add(&lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span>1,&lt;span style="color:#6e7681"> &lt;/span>1));&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">@Test&lt;/span>(expected&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>IllegalArgumentException.class)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">testDivideByZero&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>calculator.divide(10,&lt;span style="color:#6e7681"> &lt;/span>0);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">@Test&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">testMultiply&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>assertEquals(6,&lt;span style="color:#6e7681"> &lt;/span>calculator.multiply(2,&lt;span style="color:#6e7681"> &lt;/span>3));&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>assertEquals(0,&lt;span style="color:#6e7681"> &lt;/span>calculator.multiply(0,&lt;span style="color:#6e7681"> &lt;/span>5));&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">@After&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">tearDown&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>calculator&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#79c0ff">null&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="junit-5">JUnit 5&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">org.junit.jupiter.api.*&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">import static&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">org.junit.jupiter.api.Assertions.*&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">CalculatorTest&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Calculator&lt;span style="color:#6e7681"> &lt;/span>calculator;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">@BeforeEach&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">setUp&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>calculator&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Calculator();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">@Test&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">testAdd&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>assertEquals(5,&lt;span style="color:#6e7681"> &lt;/span>calculator.add(2,&lt;span style="color:#6e7681"> &lt;/span>3));&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>assertEquals(0,&lt;span style="color:#6e7681"> &lt;/span>calculator.add(&lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span>1,&lt;span style="color:#6e7681"> &lt;/span>1));&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">@Test&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">testDivideByZero&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>assertThrows(IllegalArgumentException.class,&lt;span style="color:#6e7681"> &lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>calculator.divide(10,&lt;span style="color:#6e7681"> &lt;/span>0);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>});&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">@ParameterizedTest&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">@ValueSource&lt;/span>(ints&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{1,&lt;span style="color:#6e7681"> &lt;/span>2,&lt;span style="color:#6e7681"> &lt;/span>3,&lt;span style="color:#6e7681"> &lt;/span>4,&lt;span style="color:#6e7681"> &lt;/span>5})&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">testIsPositive&lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>number)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>assertTrue(calculator.isPositive(number));&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="performance-and-memory">Performance and Memory&lt;/h2>
&lt;h3 id="memory-management">Memory Management&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Weak references&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">import&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">java.lang.ref.WeakReference&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>WeakReference&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>Object&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>weakRef&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>WeakReference&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;gt;&lt;/span>(&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Object());&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Object&lt;span style="color:#6e7681"> &lt;/span>obj&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>weakRef.get();&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// May return null if GC collected&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// String intern&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>str1&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>String(&lt;span style="color:#a5d6ff">&amp;#34;Hello&amp;#34;&lt;/span>).intern();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>str2&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Hello&amp;#34;&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">boolean&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>same&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(str1&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>str2);&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// true&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Object pooling&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">ObjectPool&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>T&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">final&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Queue&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>T&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>pool&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>ConcurrentLinkedQueue&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;gt;&lt;/span>();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">final&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>Supplier&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>T&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>factory;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">ObjectPool&lt;/span>(Supplier&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>T&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>factory)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">this&lt;/span>.factory&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>factory;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>T&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">acquire&lt;/span>()&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>T&lt;span style="color:#6e7681"> &lt;/span>object&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>pool.poll();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">return&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(object&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#79c0ff">null&lt;/span>)&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">?&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>object&lt;span style="color:#6e7681"> &lt;/span>:&lt;span style="color:#6e7681"> &lt;/span>factory.get();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">void&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">release&lt;/span>(T&lt;span style="color:#6e7681"> &lt;/span>object)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>pool.offer(object);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="performance-tips">Performance Tips&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use StringBuilder for string concatenation&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>StringBuilder&lt;span style="color:#6e7681"> &lt;/span>sb&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>StringBuilder();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>i&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>0;&lt;span style="color:#6e7681"> &lt;/span>i&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>1000;&lt;span style="color:#6e7681"> &lt;/span>i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>)&lt;span style="color:#6e7681"> &lt;/span>{&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681"> &lt;/span>sb.append(&lt;span style="color:#a5d6ff">&amp;#34;Item &amp;#34;&lt;/span>).append(i).append(&lt;span style="color:#a5d6ff">&amp;#34;\n&amp;#34;&lt;/span>);&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>}&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>String&lt;span style="color:#6e7681"> &lt;/span>result&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>sb.toString();&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Use appropriate collection types&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>List&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>String&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>list&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>ArrayList&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;gt;&lt;/span>();&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Random access&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>List&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span>String&lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>linkedList&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">new&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>LinkedList&lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&amp;gt;&lt;/span>();&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Frequent insertions/deletions&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Use primitive collections when possible&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">import&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">java.util.stream.IntStream&lt;/span>;&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>IntStream.range(0,&lt;span style="color:#6e7681"> &lt;/span>1000).sum();&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Primitive stream&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="quick-reference">Quick Reference&lt;/h2>
&lt;h3 id="common-classes">Common Classes&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Object class methods&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>equals(Object&lt;span style="color:#6e7681"> &lt;/span>obj)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>hashCode()&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>toString()&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>getClass()&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>clone()&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// String class methods&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>length()&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>charAt(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>index)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>substring(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>start,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>end)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>indexOf(String&lt;span style="color:#6e7681"> &lt;/span>str)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>toLowerCase()&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>toUpperCase()&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>trim()&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>split(String&lt;span style="color:#6e7681"> &lt;/span>regex)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>replace(&lt;span style="color:#ff7b72">char&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>oldChar,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">char&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>newChar)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Math class methods&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Math.abs(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Math.max(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Math.min(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Math.sqrt(&lt;span style="color:#ff7b72">double&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Math.pow(&lt;span style="color:#ff7b72">double&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>a,&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#ff7b72">double&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>b)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Math.random()&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Math.PI&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>Math.E&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="collection-methods">Collection Methods&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// List methods&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>add(element)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>get(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>index)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>set(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>index,&lt;span style="color:#6e7681"> &lt;/span>element)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>remove(&lt;span style="color:#ff7b72">int&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>index)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>size()&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>isEmpty()&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>contains(element)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>indexOf(element)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>clear()&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Map methods&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>put(key,&lt;span style="color:#6e7681"> &lt;/span>value)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>get(key)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>remove(key)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>containsKey(key)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>containsValue(value)&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>keySet()&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>values()&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>entrySet()&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>size()&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="access-modifiers">Access Modifiers&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">public&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Accessible from anywhere&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">protected&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Accessible within package and subclasses&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">default&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Accessible within package (no modifier)&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e7681">&lt;/span>&lt;span style="color:#ff7b72">private&lt;/span>&lt;span style="color:#6e7681"> &lt;/span>&lt;span style="color:#8b949e;font-style:italic">// Accessible only within class&lt;/span>&lt;span style="color:#6e7681">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="see-also">See Also&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://docs.oracle.com/en/java/">Oracle Java Documentation&lt;/a> - Official documentation&lt;/li>
&lt;li>&lt;a href="https://openjdk.java.net/">OpenJDK&lt;/a> - Open source implementation&lt;/li>
&lt;li>&lt;a href="https://spring.io/">Spring Framework&lt;/a> - Popular Java framework&lt;/li>
&lt;li>&lt;a href="https://maven.apache.org/">Apache Maven&lt;/a> - Build tool&lt;/li>
&lt;li>&lt;a href="https://gradle.org/">Gradle&lt;/a> - Build tool&lt;/li>
&lt;li>&lt;code>javadoc&lt;/code> - Documentation generator&lt;/li>
&lt;li>&lt;code>jdb&lt;/code> - Java debugger&lt;/li>
&lt;/ul></description></item><item><title>Kotlin</title><link>http://qref.eknath.dev/programming/kotlin/</link><pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate><guid>http://qref.eknath.dev/programming/kotlin/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>Kotlin is a statically typed programming language that runs on the JVM, Android, and can be compiled to JavaScript or native code. Developed by JetBrains, it&amp;rsquo;s designed to be concise, safe, and fully interoperable with Java.&lt;/p>
&lt;h2 id="installation">Installation&lt;/h2>
&lt;h3 id="kotlin-installation">Kotlin Installation&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Using SDKMAN&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sdk install kotlin
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># macOS with Homebrew&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>brew install kotlin
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Manual installation&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Download from https://kotlinlang.org/docs/command-line.html&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Verify installation&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kotlin -version
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kotlinc -version
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="ide-setup">IDE Setup&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># IntelliJ IDEA (recommended)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Built-in Kotlin support&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Android Studio&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Built-in Kotlin support&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># VS Code&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Install Kotlin extension&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="basic-syntax">Basic Syntax&lt;/h2>
&lt;h3 id="hello-world">Hello World&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">main&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#a5d6ff">&amp;#34;Hello, World!&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Or with arguments
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">main&lt;/span>(args: Array&amp;lt;String&amp;gt;) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#a5d6ff">&amp;#34;Hello, &lt;/span>&lt;span style="color:#a5d6ff">${args.getOrNull(0) ?: &amp;#34;World&amp;#34;}&lt;/span>&lt;span style="color:#a5d6ff">!&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="running-kotlin">Running Kotlin&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Compile and run&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kotlinc hello.kt -include-runtime -d hello.jar
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>java -jar hello.jar
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Direct execution&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kotlin hello.kt
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Interactive shell&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kotlinc
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="data-types">Data Types&lt;/h2>
&lt;h3 id="basic-types">Basic Types&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Numbers
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">byte&lt;/span>: Byte = &lt;span style="color:#a5d6ff">127&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">short&lt;/span>: Short = &lt;span style="color:#a5d6ff">32767&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">int&lt;/span>: Int = &lt;span style="color:#a5d6ff">2147483647&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">long&lt;/span>: Long = &lt;span style="color:#a5d6ff">9223372036854775807L&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Unsigned numbers
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">uByte&lt;/span>: UByte = &lt;span style="color:#a5d6ff">255u&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">uShort&lt;/span>: UShort = &lt;span style="color:#a5d6ff">65535u&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">uInt&lt;/span>: UInt = &lt;span style="color:#a5d6ff">4294967295u&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">uLong&lt;/span>: ULong = &lt;span style="color:#a5d6ff">18446744073709551615uL&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Floating point
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">float&lt;/span>: Float = &lt;span style="color:#a5d6ff">3.14f&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">double&lt;/span>: Double = &lt;span style="color:#a5d6ff">3.141592653589793&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Character
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">char&lt;/span>: Char = &lt;span style="color:#a5d6ff">&amp;#39;K&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Boolean
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">isKotlin&lt;/span>: Boolean = &lt;span style="color:#ff7b72">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// String
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">text&lt;/span>: String = &lt;span style="color:#a5d6ff">&amp;#34;Hello, Kotlin!&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">multiline&lt;/span> = &lt;span style="color:#a5d6ff">&amp;#34;&amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff"> This is a
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff"> multi-line string
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff">&amp;#34;&amp;#34;&amp;#34;&lt;/span>.trimIndent()
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="type-inference">Type Inference&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Type inference
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">name&lt;/span> = &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// String
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">age&lt;/span> = &lt;span style="color:#a5d6ff">30&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// Int
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">height&lt;/span> = &lt;span style="color:#a5d6ff">5.9&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// Double
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">isActive&lt;/span> = &lt;span style="color:#ff7b72">true&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// Boolean
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Explicit types
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">explicitName&lt;/span>: String = &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">explicitAge&lt;/span>: Int = &lt;span style="color:#a5d6ff">30&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="null-safety">Null Safety&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Non-null types
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">var&lt;/span> &lt;span style="color:#79c0ff">name&lt;/span>: String = &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// name = null // Compilation error
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Nullable types
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">var&lt;/span> &lt;span style="color:#79c0ff">nullableName&lt;/span>: String? = &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>nullableName = &lt;span style="color:#ff7b72">null&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// OK
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Safe call operator
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">length&lt;/span> = nullableName&lt;span style="color:#ff7b72;font-weight:bold">?.&lt;/span>length
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Elvis operator
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">length2&lt;/span> = nullableName&lt;span style="color:#ff7b72;font-weight:bold">?.&lt;/span>length &lt;span style="color:#ff7b72;font-weight:bold">?:&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Not-null assertion
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">length3&lt;/span> = nullableName&lt;span style="color:#ff7b72;font-weight:bold">!!&lt;/span>.length &lt;span style="color:#8b949e;font-style:italic">// Throws NPE if null
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="variables-and-constants">Variables and Constants&lt;/h2>
&lt;h3 id="variable-declaration">Variable Declaration&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Mutable variable
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">var&lt;/span> &lt;span style="color:#79c0ff">name&lt;/span> = &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>name = &lt;span style="color:#a5d6ff">&amp;#34;Jane&amp;#34;&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// OK
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Immutable variable (read-only)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">age&lt;/span> = &lt;span style="color:#a5d6ff">30&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// age = 31 // Compilation error
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Late initialization
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">lateinit&lt;/span> &lt;span style="color:#ff7b72">var&lt;/span> &lt;span style="color:#79c0ff">lateInitVar&lt;/span>: String
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Lazy initialization
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">lazyValue&lt;/span>: String &lt;span style="color:#ff7b72">by&lt;/span> lazy {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">&amp;#34;Computed only when first accessed&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="constants">Constants&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Compile-time constants
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">const&lt;/span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">PI&lt;/span> = &lt;span style="color:#a5d6ff">3.14159&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">const&lt;/span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">MAX&lt;/span>_COUNT = &lt;span style="color:#a5d6ff">100&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Runtime constants
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">currentTime&lt;/span> = &lt;span style="color:#f0883e;font-weight:bold">System&lt;/span>.currentTimeMillis()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Top-level constants
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">const&lt;/span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">API&lt;/span>_URL = &lt;span style="color:#a5d6ff">&amp;#34;https://api.example.com&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="functions">Functions&lt;/h2>
&lt;h3 id="function-declaration">Function Declaration&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Basic function
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">greet&lt;/span>(name: String): String {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Hello, &lt;/span>&lt;span style="color:#a5d6ff">$name&lt;/span>&lt;span style="color:#a5d6ff">!&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Single expression function
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">add&lt;/span>(a: Int, b: Int) = a + b
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Function with default parameters
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">greet&lt;/span>(name: String = &lt;span style="color:#a5d6ff">&amp;#34;World&amp;#34;&lt;/span>, prefix: String = &lt;span style="color:#a5d6ff">&amp;#34;Hello&amp;#34;&lt;/span>) = &lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>&lt;span style="color:#a5d6ff">$prefix&lt;/span>&lt;span style="color:#a5d6ff">, &lt;/span>&lt;span style="color:#a5d6ff">$name&lt;/span>&lt;span style="color:#a5d6ff">!&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Named parameters
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>greet(prefix = &lt;span style="color:#a5d6ff">&amp;#34;Hi&amp;#34;&lt;/span>, name = &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Variable number of arguments
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">sum&lt;/span>(&lt;span style="color:#ff7b72">vararg&lt;/span> numbers: Int): Int {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> numbers.sum()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="higher-order-functions">Higher-Order Functions&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Function as parameter
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">calculate&lt;/span>(x: Int, y: Int, operation: (Int, Int) &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span> Int): Int {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> operation(x, y)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Usage
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">result&lt;/span> = calculate(&lt;span style="color:#a5d6ff">5&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>) { a, b &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span> a + b }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Function returning function
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">multiplier&lt;/span>(factor: Int): (Int) &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span> Int {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> { number &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span> number * factor }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">doubler&lt;/span> = multiplier(&lt;span style="color:#a5d6ff">2&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>println(doubler(&lt;span style="color:#a5d6ff">5&lt;/span>)) &lt;span style="color:#8b949e;font-style:italic">// 10
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="lambda-expressions">Lambda Expressions&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Lambda syntax
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">square&lt;/span> = { x: Int &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span> x * x }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">isEven&lt;/span> = { x: Int &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span> x % &lt;span style="color:#a5d6ff">2&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Lambda with it parameter
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">numbers&lt;/span> = listOf(&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>numbers.filter { &lt;span style="color:#ff7b72">it&lt;/span> &amp;gt; &lt;span style="color:#a5d6ff">3&lt;/span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Multiple parameters
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">add&lt;/span> = { x: Int, y: Int &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span> x + y }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Lambda with receiver
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">string&lt;/span> = StringBuilder().apply {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> append(&lt;span style="color:#a5d6ff">&amp;#34;Hello, &amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> append(&lt;span style="color:#a5d6ff">&amp;#34;World!&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}.toString()
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="control-flow">Control Flow&lt;/h2>
&lt;h3 id="conditionals">Conditionals&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// if expression
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">max&lt;/span> = &lt;span style="color:#ff7b72">if&lt;/span> (a &amp;gt; b) a &lt;span style="color:#ff7b72">else&lt;/span> b
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// when expression
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">when&lt;/span> (x) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">1&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span> println(&lt;span style="color:#a5d6ff">&amp;#34;One&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span> println(&lt;span style="color:#a5d6ff">&amp;#34;Two or Three&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">in&lt;/span> &lt;span style="color:#a5d6ff">4.&lt;/span>.&lt;span style="color:#a5d6ff">10&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span> println(&lt;span style="color:#a5d6ff">&amp;#34;Between 4 and 10&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">is&lt;/span> String &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span> println(&lt;span style="color:#a5d6ff">&amp;#34;It&amp;#39;s a string&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">else&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span> println(&lt;span style="color:#a5d6ff">&amp;#34;Unknown&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// when without argument
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">when&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> x &amp;gt; &lt;span style="color:#a5d6ff">0&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span> println(&lt;span style="color:#a5d6ff">&amp;#34;Positive&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> x &amp;lt; &lt;span style="color:#a5d6ff">0&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span> println(&lt;span style="color:#a5d6ff">&amp;#34;Negative&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">else&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span> println(&lt;span style="color:#a5d6ff">&amp;#34;Zero&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="loops">Loops&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// for loop
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span> (i &lt;span style="color:#ff7b72">in&lt;/span> &lt;span style="color:#a5d6ff">1.&lt;/span>.&lt;span style="color:#a5d6ff">5&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(i)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// for with step
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span> (i &lt;span style="color:#ff7b72">in&lt;/span> &lt;span style="color:#a5d6ff">1.&lt;/span>.&lt;span style="color:#a5d6ff">10&lt;/span> step &lt;span style="color:#a5d6ff">2&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(i)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// for downTo
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span> (i &lt;span style="color:#ff7b72">in&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span> downTo &lt;span style="color:#a5d6ff">1&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(i)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// for with collections
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">items&lt;/span> = listOf(&lt;span style="color:#a5d6ff">&amp;#34;apple&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;banana&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;cherry&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> (item &lt;span style="color:#ff7b72">in&lt;/span> items) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(item)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// for with index
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span> ((index, item) &lt;span style="color:#ff7b72">in&lt;/span> items.withIndex()) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>&lt;span style="color:#a5d6ff">$index&lt;/span>&lt;span style="color:#a5d6ff">: &lt;/span>&lt;span style="color:#a5d6ff">$item&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// while loop
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">var&lt;/span> &lt;span style="color:#79c0ff">i&lt;/span> = &lt;span style="color:#a5d6ff">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">while&lt;/span> (i &amp;lt; &lt;span style="color:#a5d6ff">5&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(i)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// do-while loop
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">do&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(i)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> i&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>} &lt;span style="color:#ff7b72">while&lt;/span> (i &amp;lt; &lt;span style="color:#a5d6ff">10&lt;/span>)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="control-flow-statements">Control Flow Statements&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// break and continue
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">for&lt;/span> (i &lt;span style="color:#ff7b72">in&lt;/span> &lt;span style="color:#a5d6ff">1.&lt;/span>.&lt;span style="color:#a5d6ff">10&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> (i &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">5&lt;/span>) &lt;span style="color:#ff7b72">continue&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> (i &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">8&lt;/span>) &lt;span style="color:#ff7b72">break&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(i)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// labeled break
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>loop&lt;span style="color:#f85149">@&lt;/span> &lt;span style="color:#ff7b72">for&lt;/span> (i &lt;span style="color:#ff7b72">in&lt;/span> &lt;span style="color:#a5d6ff">1.&lt;/span>.&lt;span style="color:#a5d6ff">3&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">for&lt;/span> (j &lt;span style="color:#ff7b72">in&lt;/span> &lt;span style="color:#a5d6ff">1.&lt;/span>.&lt;span style="color:#a5d6ff">3&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> (i &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">2&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&amp;amp;&lt;/span> j &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">2&lt;/span>) &lt;span style="color:#ff7b72">break&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">@loop&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>&lt;span style="color:#a5d6ff">$i&lt;/span>&lt;span style="color:#a5d6ff">, &lt;/span>&lt;span style="color:#a5d6ff">$j&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// return from lambda
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">processNumbers&lt;/span>(numbers: List&amp;lt;Int&amp;gt;) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> numbers.forEach { number &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> (number &amp;lt; &lt;span style="color:#a5d6ff">0&lt;/span>) &lt;span style="color:#ff7b72">return&lt;/span>&lt;span style="color:#d2a8ff;font-weight:bold">@forEach&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// continue
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> println(number)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="classes-and-objects">Classes and Objects&lt;/h2>
&lt;h3 id="class-declaration">Class Declaration&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Person&lt;/span>(&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">name&lt;/span>: String, &lt;span style="color:#ff7b72">var&lt;/span> &lt;span style="color:#79c0ff">age&lt;/span>: Int) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Secondary constructor
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#ff7b72">constructor&lt;/span>(name: String) : &lt;span style="color:#ff7b72">this&lt;/span>(name, &lt;span style="color:#a5d6ff">0&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Init block
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#ff7b72">init&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#a5d6ff">&amp;#34;Person created: &lt;/span>&lt;span style="color:#a5d6ff">$name&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Methods
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">greet&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#a5d6ff">&amp;#34;Hello, I&amp;#39;m &lt;/span>&lt;span style="color:#a5d6ff">$name&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">haveBirthday&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> age&lt;span style="color:#ff7b72;font-weight:bold">++&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Usage
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">person&lt;/span> = Person(&lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">30&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>person.greet()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>person.haveBirthday()
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="properties">Properties&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Rectangle&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">var&lt;/span> &lt;span style="color:#79c0ff">width&lt;/span>: Double = &lt;span style="color:#a5d6ff">0.0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">set&lt;/span>(&lt;span style="color:#ff7b72">value&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> (&lt;span style="color:#ff7b72">value&lt;/span> &amp;gt; &lt;span style="color:#a5d6ff">0&lt;/span>) &lt;span style="color:#ff7b72">field&lt;/span> = &lt;span style="color:#ff7b72">value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">var&lt;/span> &lt;span style="color:#79c0ff">height&lt;/span>: Double = &lt;span style="color:#a5d6ff">0.0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">set&lt;/span>(&lt;span style="color:#ff7b72">value&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> (&lt;span style="color:#ff7b72">value&lt;/span> &amp;gt; &lt;span style="color:#a5d6ff">0&lt;/span>) &lt;span style="color:#ff7b72">field&lt;/span> = &lt;span style="color:#ff7b72">value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">area&lt;/span>: Double
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">get&lt;/span>() = width * height
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">var&lt;/span> &lt;span style="color:#79c0ff">color&lt;/span>: String = &lt;span style="color:#a5d6ff">&amp;#34;white&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">private&lt;/span> &lt;span style="color:#ff7b72">set&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// Private setter
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="visibility-modifiers">Visibility Modifiers&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Example&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">private&lt;/span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">privateProperty&lt;/span> = &lt;span style="color:#a5d6ff">&amp;#34;Private&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">protected&lt;/span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">protectedProperty&lt;/span> = &lt;span style="color:#a5d6ff">&amp;#34;Protected&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">internal&lt;/span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">internalProperty&lt;/span> = &lt;span style="color:#a5d6ff">&amp;#34;Internal&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">public&lt;/span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">publicProperty&lt;/span> = &lt;span style="color:#a5d6ff">&amp;#34;Public&amp;#34;&lt;/span> &lt;span style="color:#8b949e;font-style:italic">// Default
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">private&lt;/span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">privateFunction&lt;/span>() {}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">protected&lt;/span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">protectedFunction&lt;/span>() {}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">internal&lt;/span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">internalFunction&lt;/span>() {}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">public&lt;/span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">publicFunction&lt;/span>() {} &lt;span style="color:#8b949e;font-style:italic">// Default
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="inheritance">Inheritance&lt;/h2>
&lt;h3 id="basic-inheritance">Basic Inheritance&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Base class (must be open)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">open&lt;/span> &lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Animal&lt;/span>(&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">name&lt;/span>: String) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">open&lt;/span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">makeSound&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>&lt;span style="color:#a5d6ff">$name&lt;/span>&lt;span style="color:#a5d6ff"> makes a sound&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Derived class
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Dog&lt;/span>(name: String, &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">breed&lt;/span>: String) : Animal(name) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">override&lt;/span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">makeSound&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>&lt;span style="color:#a5d6ff">$name&lt;/span>&lt;span style="color:#a5d6ff"> barks&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">wagTail&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>&lt;span style="color:#a5d6ff">$name&lt;/span>&lt;span style="color:#a5d6ff"> wags tail&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Abstract class
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">abstract&lt;/span> &lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Shape&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">abstract&lt;/span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">area&lt;/span>(): Double
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">describe&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#a5d6ff">&amp;#34;This shape has area: &lt;/span>&lt;span style="color:#a5d6ff">${area()}&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Circle&lt;/span>(&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">radius&lt;/span>: Double) : Shape() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">override&lt;/span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">area&lt;/span>() = &lt;span style="color:#f0883e;font-weight:bold">Math&lt;/span>.PI * radius * radius
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="interfaces">Interfaces&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">interface&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Drawable&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">draw&lt;/span>()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Interface with default implementation
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">printInfo&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#a5d6ff">&amp;#34;This is drawable&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">interface&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Clickable&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">click&lt;/span>()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Default implementation
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">showClick&lt;/span>() = println(&lt;span style="color:#a5d6ff">&amp;#34;Clicked!&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Button&lt;/span> : Drawable, Clickable {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">override&lt;/span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">draw&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#a5d6ff">&amp;#34;Drawing button&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">override&lt;/span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">click&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#a5d6ff">&amp;#34;Button clicked&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="data-classes">Data Classes&lt;/h2>
&lt;h3 id="data-class">Data Class&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">data&lt;/span> &lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">User&lt;/span>(&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">name&lt;/span>: String, &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">age&lt;/span>: Int, &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">email&lt;/span>: String)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Automatically generated:
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// - equals() and hashCode()
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// - toString()
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// - componentN() functions
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// - copy() function
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">user&lt;/span> = User(&lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">30&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;john@example.com&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>println(user) &lt;span style="color:#8b949e;font-style:italic">// User(name=John, age=30, email=john@example.com)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Destructuring
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#f85149">(&lt;/span>&lt;span style="color:#79c0ff">name&lt;/span>, age, email) = user
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Copy with modifications
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">olderUser&lt;/span> = user.copy(age = &lt;span style="color:#a5d6ff">31&lt;/span>)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="enum-classes">Enum Classes&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">enum&lt;/span> &lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Direction&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> NORTH, SOUTH, EAST, WEST
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">enum&lt;/span> &lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Color&lt;/span>(&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">rgb&lt;/span>: Int) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> RED(&lt;span style="color:#a5d6ff">0xFF0000&lt;/span>),
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> GREEN(&lt;span style="color:#a5d6ff">0x00FF00&lt;/span>),
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> BLUE(&lt;span style="color:#a5d6ff">0x0000FF&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">containsRed&lt;/span>() = (&lt;span style="color:#ff7b72">this&lt;/span>.rgb and &lt;span style="color:#a5d6ff">0xFF0000&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Usage
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">direction&lt;/span> = &lt;span style="color:#f0883e;font-weight:bold">Direction&lt;/span>.NORTH
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">color&lt;/span> = &lt;span style="color:#f0883e;font-weight:bold">Color&lt;/span>.RED
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>println(color.rgb)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="sealed-classes">Sealed Classes&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">sealed&lt;/span> &lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Result&lt;/span>&amp;lt;&lt;span style="color:#ff7b72">out&lt;/span> T&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">data&lt;/span> &lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Success&lt;/span>&amp;lt;T&amp;gt;(&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">data&lt;/span>: T) : Result&amp;lt;T&amp;gt;()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">data&lt;/span> &lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Error&lt;/span>(&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">message&lt;/span>: String) : Result&amp;lt;Nothing&amp;gt;()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">object&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Loading&lt;/span> : Result&amp;lt;Nothing&amp;gt;()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Usage with when
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">handleResult&lt;/span>(result: Result&amp;lt;String&amp;gt;) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">when&lt;/span> (result) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">is&lt;/span> Success &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span> println(&lt;span style="color:#a5d6ff">&amp;#34;Data: &lt;/span>&lt;span style="color:#a5d6ff">${result.data}&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">is&lt;/span> Error &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span> println(&lt;span style="color:#a5d6ff">&amp;#34;Error: &lt;/span>&lt;span style="color:#a5d6ff">${result.message}&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Loading &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span> println(&lt;span style="color:#a5d6ff">&amp;#34;Loading...&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="collections">Collections&lt;/h2>
&lt;h3 id="lists">Lists&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Immutable list
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">readOnlyList&lt;/span> = listOf(&lt;span style="color:#a5d6ff">&amp;#34;apple&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;banana&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;cherry&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Mutable list
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">mutableList&lt;/span> = mutableListOf(&lt;span style="color:#a5d6ff">&amp;#34;apple&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;banana&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>mutableList.add(&lt;span style="color:#a5d6ff">&amp;#34;cherry&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>mutableList.remove(&lt;span style="color:#a5d6ff">&amp;#34;banana&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// List operations
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">numbers&lt;/span> = listOf(&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">doubled&lt;/span> = numbers.map { &lt;span style="color:#ff7b72">it&lt;/span> * &lt;span style="color:#a5d6ff">2&lt;/span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">filtered&lt;/span> = numbers.filter { &lt;span style="color:#ff7b72">it&lt;/span> &amp;gt; &lt;span style="color:#a5d6ff">3&lt;/span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">first&lt;/span> = numbers.first()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">last&lt;/span> = numbers.last()
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="sets">Sets&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Immutable set
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">readOnlySet&lt;/span> = setOf(&lt;span style="color:#a5d6ff">&amp;#34;apple&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;banana&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;cherry&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Mutable set
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">mutableSet&lt;/span> = mutableSetOf(&lt;span style="color:#a5d6ff">&amp;#34;apple&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;banana&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>mutableSet.add(&lt;span style="color:#a5d6ff">&amp;#34;cherry&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>mutableSet.remove(&lt;span style="color:#a5d6ff">&amp;#34;banana&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Set operations
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">set1&lt;/span> = setOf(&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">set2&lt;/span> = setOf(&lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">union&lt;/span> = set1 union set2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">intersection&lt;/span> = set1 intersect set2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">difference&lt;/span> = set1 subtract set2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="maps">Maps&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Immutable map
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">readOnlyMap&lt;/span> = mapOf(&lt;span style="color:#a5d6ff">&amp;#34;a&amp;#34;&lt;/span> to &lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;b&amp;#34;&lt;/span> to &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;c&amp;#34;&lt;/span> to &lt;span style="color:#a5d6ff">3&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Mutable map
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">mutableMap&lt;/span> = mutableMapOf(&lt;span style="color:#a5d6ff">&amp;#34;a&amp;#34;&lt;/span> to &lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;b&amp;#34;&lt;/span> to &lt;span style="color:#a5d6ff">2&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>mutableMap[&lt;span style="color:#a5d6ff">&amp;#34;c&amp;#34;&lt;/span>] = &lt;span style="color:#a5d6ff">3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>mutableMap.remove(&lt;span style="color:#a5d6ff">&amp;#34;b&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Map operations
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">map&lt;/span> = mapOf(&lt;span style="color:#a5d6ff">&amp;#34;name&amp;#34;&lt;/span> to &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;age&amp;#34;&lt;/span> to &lt;span style="color:#a5d6ff">&amp;#34;30&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">name&lt;/span> = map[&lt;span style="color:#a5d6ff">&amp;#34;name&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">age&lt;/span> = map.getValue(&lt;span style="color:#a5d6ff">&amp;#34;age&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">keys&lt;/span> = map.keys
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">values&lt;/span> = map.values
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="collection-operations">Collection Operations&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">numbers&lt;/span> = listOf(&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>, &lt;span style="color:#a5d6ff">6&lt;/span>, &lt;span style="color:#a5d6ff">7&lt;/span>, &lt;span style="color:#a5d6ff">8&lt;/span>, &lt;span style="color:#a5d6ff">9&lt;/span>, &lt;span style="color:#a5d6ff">10&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Transformations
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">doubled&lt;/span> = numbers.map { &lt;span style="color:#ff7b72">it&lt;/span> * &lt;span style="color:#a5d6ff">2&lt;/span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">strings&lt;/span> = numbers.map { &lt;span style="color:#a5d6ff">&amp;#34;Number: &lt;/span>&lt;span style="color:#a5d6ff">$it&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Filtering
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">evens&lt;/span> = numbers.filter { &lt;span style="color:#ff7b72">it&lt;/span> % &lt;span style="color:#a5d6ff">2&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">odds&lt;/span> = numbers.filterNot { &lt;span style="color:#ff7b72">it&lt;/span> % &lt;span style="color:#a5d6ff">2&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Aggregation
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">sum&lt;/span> = numbers.sum()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">average&lt;/span> = numbers.average()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">max&lt;/span> = numbers.maxOrNull()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">min&lt;/span> = numbers.minOrNull()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Grouping
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">grouped&lt;/span> = numbers.groupBy { &lt;span style="color:#ff7b72">it&lt;/span> % &lt;span style="color:#a5d6ff">3&lt;/span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Sorting
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">sorted&lt;/span> = numbers.sorted()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">sortedDesc&lt;/span> = numbers.sortedDescending()
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="coroutines">Coroutines&lt;/h2>
&lt;h3 id="basic-coroutines">Basic Coroutines&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">kotlinx.coroutines.*&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Simple coroutine
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">main&lt;/span>() = runBlocking {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> launch {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> delay(&lt;span style="color:#a5d6ff">1000L&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#a5d6ff">&amp;#34;World!&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#a5d6ff">&amp;#34;Hello,&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Async coroutine
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">main&lt;/span>() = runBlocking {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">deferred&lt;/span> = async {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> delay(&lt;span style="color:#a5d6ff">1000L&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">&amp;#34;Hello&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>&lt;span style="color:#a5d6ff">${deferred.await()}&lt;/span>&lt;span style="color:#a5d6ff">, World!&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="suspending-functions">Suspending Functions&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">suspend&lt;/span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">fetchData&lt;/span>(): String {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> delay(&lt;span style="color:#a5d6ff">1000L&lt;/span>) &lt;span style="color:#8b949e;font-style:italic">// Simulate network call
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Data&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">suspend&lt;/span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">processData&lt;/span>(&lt;span style="color:#ff7b72">data&lt;/span>: String): String {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> delay(&lt;span style="color:#a5d6ff">500L&lt;/span>) &lt;span style="color:#8b949e;font-style:italic">// Simulate processing
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Processed: &lt;/span>&lt;span style="color:#a5d6ff">$data&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Usage
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">main&lt;/span>() = runBlocking {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">data&lt;/span> = fetchData()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">processed&lt;/span> = processData(&lt;span style="color:#ff7b72">data&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(processed)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="coroutine-builders">Coroutine Builders&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// runBlocking - blocks current thread
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>runBlocking {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// coroutine code
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// launch - fire and forget
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>launch {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// coroutine code
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// async - concurrent execution with result
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">deferred&lt;/span> = async {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// return some value
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">result&lt;/span> = deferred.await()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// withContext - change context
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>withContext(&lt;span style="color:#f0883e;font-weight:bold">Dispatchers&lt;/span>.IO) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// IO operations
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="channels">Channels&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">kotlinx.coroutines.channels.*&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Channel for communication
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">channel&lt;/span> = Channel&amp;lt;Int&amp;gt;()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>launch {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">for&lt;/span> (x &lt;span style="color:#ff7b72">in&lt;/span> &lt;span style="color:#a5d6ff">1.&lt;/span>.&lt;span style="color:#a5d6ff">5&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> channel.send(x * x)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> channel.close()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>launch {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">for&lt;/span> (y &lt;span style="color:#ff7b72">in&lt;/span> channel) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(y)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Produce builder
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">squares&lt;/span> = produce&amp;lt;Int&amp;gt; {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">for&lt;/span> (x &lt;span style="color:#ff7b72">in&lt;/span> &lt;span style="color:#a5d6ff">1.&lt;/span>.&lt;span style="color:#a5d6ff">5&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> send(x * x)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="extension-functions">Extension Functions&lt;/h2>
&lt;h3 id="basic-extensions">Basic Extensions&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Extension function for String
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">String&lt;/span>.isPalindrome(): Boolean {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#ff7b72">this&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#ff7b72">this&lt;/span>.reversed()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Usage
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">text&lt;/span> = &lt;span style="color:#a5d6ff">&amp;#34;racecar&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>println(text.isPalindrome()) &lt;span style="color:#8b949e;font-style:italic">// true
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Extension property
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">String&lt;/span>.lastChar: Char
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">get&lt;/span>() = &lt;span style="color:#ff7b72">this&lt;/span>[length - &lt;span style="color:#a5d6ff">1&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Extension with receiver
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">StringBuilder&lt;/span>.appendLine(text: String) = &lt;span style="color:#ff7b72">this&lt;/span>.append(&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>&lt;span style="color:#a5d6ff">$text&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="generic-extensions">Generic Extensions&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Generic extension function
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">fun&lt;/span> &amp;lt;&lt;span style="color:#f0883e;font-weight:bold">T&lt;/span>&amp;gt; &lt;span style="color:#d2a8ff;font-weight:bold">List&lt;/span>&amp;lt;T&amp;gt;.second(): T {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> (size &amp;lt; &lt;span style="color:#a5d6ff">2&lt;/span>) &lt;span style="color:#ff7b72">throw&lt;/span> IndexOutOfBoundsException()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#ff7b72">this&lt;/span>[&lt;span style="color:#a5d6ff">1&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Usage
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">numbers&lt;/span> = listOf(&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>println(numbers.second()) &lt;span style="color:#8b949e;font-style:italic">// 2
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="delegation">Delegation&lt;/h2>
&lt;h3 id="class-delegation">Class Delegation&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">interface&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Base&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">print&lt;/span>()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">BaseImpl&lt;/span>(&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">x&lt;/span>: Int) : Base {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">override&lt;/span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">print&lt;/span>() { println(x) }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Derived&lt;/span>(b: Base) : Base &lt;span style="color:#ff7b72">by&lt;/span> b
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Usage
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">base&lt;/span> = BaseImpl(&lt;span style="color:#a5d6ff">10&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">derived&lt;/span> = Derived(base)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>derived.print() &lt;span style="color:#8b949e;font-style:italic">// 10
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="property-delegation">Property Delegation&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">kotlin.properties.Delegates&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">User&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Lazy property
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">name&lt;/span>: String &lt;span style="color:#ff7b72">by&lt;/span> lazy {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#a5d6ff">&amp;#34;Computed!&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Observable property
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#ff7b72">var&lt;/span> &lt;span style="color:#79c0ff">age&lt;/span>: Int &lt;span style="color:#ff7b72">by&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Delegates&lt;/span>.observable(&lt;span style="color:#a5d6ff">0&lt;/span>) { &lt;span style="color:#ff7b72">property&lt;/span>, oldValue, newValue &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>&lt;span style="color:#a5d6ff">${property.name}&lt;/span>&lt;span style="color:#a5d6ff"> changed from &lt;/span>&lt;span style="color:#a5d6ff">$oldValue&lt;/span>&lt;span style="color:#a5d6ff"> to &lt;/span>&lt;span style="color:#a5d6ff">$newValue&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Vetoable property
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#ff7b72">var&lt;/span> &lt;span style="color:#79c0ff">salary&lt;/span>: Double &lt;span style="color:#ff7b72">by&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Delegates&lt;/span>.vetoable(&lt;span style="color:#a5d6ff">0.0&lt;/span>) { &lt;span style="color:#ff7b72">property&lt;/span>, oldValue, newValue &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> newValue &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;=&lt;/span> &lt;span style="color:#a5d6ff">0.0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="type-system">Type System&lt;/h2>
&lt;h3 id="generics">Generics&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Generic class
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Box&lt;/span>&amp;lt;T&amp;gt;(&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">value&lt;/span>: T)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Generic function
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">fun&lt;/span> &amp;lt;&lt;span style="color:#f0883e;font-weight:bold">T&lt;/span>&amp;gt; &lt;span style="color:#d2a8ff;font-weight:bold">singletonList&lt;/span>(item: T): List&amp;lt;T&amp;gt; {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> listOf(item)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Multiple type parameters
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Pair&lt;/span>&amp;lt;A, B&amp;gt;(&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">first&lt;/span>: A, &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">second&lt;/span>: B)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Bounded type parameters
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">fun&lt;/span> &amp;lt;&lt;span style="color:#f0883e;font-weight:bold">T&lt;/span> : &lt;span style="color:#f0883e;font-weight:bold">Comparable&lt;/span>&amp;lt;&lt;span style="color:#f0883e;font-weight:bold">T&lt;/span>&amp;gt;&amp;gt; &lt;span style="color:#d2a8ff;font-weight:bold">sort&lt;/span>(list: List&amp;lt;T&amp;gt;): List&amp;lt;T&amp;gt; {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> list.sorted()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="variance">Variance&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Covariance (out)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">interface&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Producer&lt;/span>&amp;lt;&lt;span style="color:#ff7b72">out&lt;/span> T&amp;gt; {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">produce&lt;/span>(): T
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Contravariance (in)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">interface&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Consumer&lt;/span>&amp;lt;&lt;span style="color:#ff7b72">in&lt;/span> T&amp;gt; {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">consume&lt;/span>(item: T)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Invariance (default)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">interface&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Processor&lt;/span>&amp;lt;T&amp;gt; {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">process&lt;/span>(item: T): T
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="type-aliases">Type Aliases&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">typealias&lt;/span> UserId = String
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">typealias&lt;/span> UserMap = Map&amp;lt;UserId, String&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Function type alias
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">typealias&lt;/span> Predicate&amp;lt;T&amp;gt; = (T) &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span> Boolean
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Usage
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">isEven&lt;/span>: Predicate&amp;lt;Int&amp;gt; = { &lt;span style="color:#ff7b72">it&lt;/span> % &lt;span style="color:#a5d6ff">2&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span> }
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="standard-library">Standard Library&lt;/h2>
&lt;h3 id="string-operations">String Operations&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">text&lt;/span> = &lt;span style="color:#a5d6ff">&amp;#34;Hello, Kotlin!&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// String templates
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">name&lt;/span> = &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">greeting&lt;/span> = &lt;span style="color:#a5d6ff">&amp;#34;Hello, &lt;/span>&lt;span style="color:#a5d6ff">$name&lt;/span>&lt;span style="color:#a5d6ff">!&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">info&lt;/span> = &lt;span style="color:#a5d6ff">&amp;#34;Name: &lt;/span>&lt;span style="color:#a5d6ff">${name.uppercase()}&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// String operations
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>text.uppercase()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>text.lowercase()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>text.substring(&lt;span style="color:#a5d6ff">0&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>text.replace(&lt;span style="color:#a5d6ff">&amp;#34;Kotlin&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;World&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>text.split(&lt;span style="color:#a5d6ff">&amp;#34;, &amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// String builder
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">sb&lt;/span> = StringBuilder()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sb.append(&lt;span style="color:#a5d6ff">&amp;#34;Hello&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sb.append(&lt;span style="color:#a5d6ff">&amp;#34;, &amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sb.append(&lt;span style="color:#a5d6ff">&amp;#34;World!&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">result&lt;/span> = sb.toString()
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="file-operations">File Operations&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">java.io.File&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Read file
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">file&lt;/span> = File(&lt;span style="color:#a5d6ff">&amp;#34;example.txt&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">content&lt;/span> = &lt;span style="color:#ff7b72">file&lt;/span>.readText()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">lines&lt;/span> = &lt;span style="color:#ff7b72">file&lt;/span>.readLines()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Write file
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">file&lt;/span>.writeText(&lt;span style="color:#a5d6ff">&amp;#34;Hello, World!&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">file&lt;/span>.appendText(&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">New line&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// File operations
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">if&lt;/span> (&lt;span style="color:#ff7b72">file&lt;/span>.exists()) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(&lt;span style="color:#a5d6ff">&amp;#34;File size: &lt;/span>&lt;span style="color:#a5d6ff">${file.length()}&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Working with paths
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">path&lt;/span> = &lt;span style="color:#ff7b72">file&lt;/span>.toPath()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">absolutePath&lt;/span> = &lt;span style="color:#ff7b72">file&lt;/span>.absolutePath
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="date-and-time">Date and Time&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">java.time.*&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">java.time.format.DateTimeFormatter&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Current time
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">now&lt;/span> = &lt;span style="color:#f0883e;font-weight:bold">LocalDateTime&lt;/span>.now()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">today&lt;/span> = &lt;span style="color:#f0883e;font-weight:bold">LocalDate&lt;/span>.now()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">currentTime&lt;/span> = &lt;span style="color:#f0883e;font-weight:bold">LocalTime&lt;/span>.now()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Creating dates
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">specificDate&lt;/span> = &lt;span style="color:#f0883e;font-weight:bold">LocalDate&lt;/span>.of(&lt;span style="color:#a5d6ff">2023&lt;/span>, &lt;span style="color:#a5d6ff">12&lt;/span>, &lt;span style="color:#a5d6ff">25&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">specificTime&lt;/span> = &lt;span style="color:#f0883e;font-weight:bold">LocalTime&lt;/span>.of(&lt;span style="color:#a5d6ff">14&lt;/span>, &lt;span style="color:#a5d6ff">30&lt;/span>, &lt;span style="color:#a5d6ff">0&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Formatting
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">formatter&lt;/span> = &lt;span style="color:#f0883e;font-weight:bold">DateTimeFormatter&lt;/span>.ofPattern(&lt;span style="color:#a5d6ff">&amp;#34;yyyy-MM-dd HH:mm:ss&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">formatted&lt;/span> = now.format(formatter)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Parsing
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">parsed&lt;/span> = &lt;span style="color:#f0883e;font-weight:bold">LocalDateTime&lt;/span>.parse(&lt;span style="color:#a5d6ff">&amp;#34;2023-12-25 14:30:00&amp;#34;&lt;/span>, formatter)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="testing">Testing&lt;/h2>
&lt;h3 id="unit-testing">Unit Testing&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">org.junit.Test&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">org.junit.Assert.*&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">CalculatorTest&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">@Test&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">testAddition&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">calculator&lt;/span> = Calculator()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">result&lt;/span> = calculator.add(&lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> assertEquals(&lt;span style="color:#a5d6ff">5&lt;/span>, result)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">@Test&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">testDivision&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">calculator&lt;/span> = Calculator()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">result&lt;/span> = calculator.divide(&lt;span style="color:#a5d6ff">10&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> assertEquals(&lt;span style="color:#a5d6ff">5.0&lt;/span>, result, &lt;span style="color:#a5d6ff">0.001&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">@Test&lt;/span>(expected = IllegalArgumentException&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>&lt;span style="color:#ff7b72">class&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">testDivisionByZero&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">calculator&lt;/span> = Calculator()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> calculator.divide(&lt;span style="color:#a5d6ff">10&lt;/span>, &lt;span style="color:#a5d6ff">0&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="coroutine-testing">Coroutine Testing&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">kotlinx.coroutines.test.*&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">CoroutineTest&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">@Test&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">testSuspendFunction&lt;/span>() = runTest {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">result&lt;/span> = suspendingFunction()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> assertEquals(&lt;span style="color:#a5d6ff">&amp;#34;Expected&amp;#34;&lt;/span>, result)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">@Test&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">testWithDelay&lt;/span>() = runTest {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">startTime&lt;/span> = currentTime
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> delay(&lt;span style="color:#a5d6ff">1000&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">endTime&lt;/span> = currentTime
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> assertEquals(&lt;span style="color:#a5d6ff">1000&lt;/span>, endTime - startTime)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="best-practices">Best Practices&lt;/h2>
&lt;h3 id="null-safety-1">Null Safety&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use safe calls
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">length&lt;/span> = text&lt;span style="color:#ff7b72;font-weight:bold">?.&lt;/span>length
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use elvis operator for defaults
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">length&lt;/span> = text&lt;span style="color:#ff7b72;font-weight:bold">?.&lt;/span>length &lt;span style="color:#ff7b72;font-weight:bold">?:&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use let for null checks
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>text&lt;span style="color:#ff7b72;font-weight:bold">?.&lt;/span>let { nonNullText &lt;span style="color:#ff7b72;font-weight:bold">-&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> println(nonNullText.uppercase())
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use requireNotNull for validation
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">processText&lt;/span>(text: String?) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">nonNullText&lt;/span> = requireNotNull(text) { &lt;span style="color:#a5d6ff">&amp;#34;Text cannot be null&amp;#34;&lt;/span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Process non-null text
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="immutability">Immutability&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Prefer val over var
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">immutableList&lt;/span> = listOf(&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">immutableMap&lt;/span> = mapOf(&lt;span style="color:#a5d6ff">&amp;#34;a&amp;#34;&lt;/span> to &lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;b&amp;#34;&lt;/span> to &lt;span style="color:#a5d6ff">2&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use data classes for immutable data
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">data&lt;/span> &lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">User&lt;/span>(&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">name&lt;/span>: String, &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">age&lt;/span>: Int)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use copy for modifications
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">originalUser&lt;/span> = User(&lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">30&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">modifiedUser&lt;/span> = originalUser.copy(age = &lt;span style="color:#a5d6ff">31&lt;/span>)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="functional-programming">Functional Programming&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use higher-order functions
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">numbers&lt;/span> = listOf(&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">doubled&lt;/span> = numbers.map { &lt;span style="color:#ff7b72">it&lt;/span> * &lt;span style="color:#a5d6ff">2&lt;/span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">filtered&lt;/span> = numbers.filter { &lt;span style="color:#ff7b72">it&lt;/span> &amp;gt; &lt;span style="color:#a5d6ff">3&lt;/span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use sequences for large collections
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">result&lt;/span> = numbers.asSequence()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> .filter { &lt;span style="color:#ff7b72">it&lt;/span> &amp;gt; &lt;span style="color:#a5d6ff">2&lt;/span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> .map { &lt;span style="color:#ff7b72">it&lt;/span> * &lt;span style="color:#a5d6ff">2&lt;/span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> .toList()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">// Use apply, let, run, also, with
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">user&lt;/span> = User(&lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">30&lt;/span>).apply {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Configure object
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="android-development">Android Development&lt;/h2>
&lt;h3 id="activity">Activity&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">MainActivity&lt;/span> : AppCompatActivity() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">override&lt;/span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">onCreate&lt;/span>(savedInstanceState: Bundle?) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">super&lt;/span>.onCreate(savedInstanceState)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> setContentView(&lt;span style="color:#f0883e;font-weight:bold">R&lt;/span>.layout.activity_main)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Initialize views
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">button&lt;/span> = findViewById&amp;lt;Button&amp;gt;(&lt;span style="color:#f0883e;font-weight:bold">R&lt;/span>.id.button)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> button.setOnClickListener {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic">// Handle click
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="viewbinding">ViewBinding&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">MainActivity&lt;/span> : AppCompatActivity() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">private&lt;/span> &lt;span style="color:#ff7b72">lateinit&lt;/span> &lt;span style="color:#ff7b72">var&lt;/span> &lt;span style="color:#79c0ff">binding&lt;/span>: ActivityMainBinding
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">override&lt;/span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">onCreate&lt;/span>(savedInstanceState: Bundle?) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">super&lt;/span>.onCreate(savedInstanceState)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> binding = &lt;span style="color:#f0883e;font-weight:bold">ActivityMainBinding&lt;/span>.inflate(layoutInflater)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> setContentView(binding.root)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> binding.button.setOnClickListener {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> binding.textView.text = &lt;span style="color:#a5d6ff">&amp;#34;Button clicked!&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="room-database">Room Database&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">@Entity&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">data&lt;/span> &lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">User&lt;/span>(
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">@PrimaryKey&lt;/span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">id&lt;/span>: Int,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">name&lt;/span>: String,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">email&lt;/span>: String
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">@Dao&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">interface&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">UserDao&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">@Query&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;SELECT * FROM user&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">suspend&lt;/span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">getAllUsers&lt;/span>(): List&amp;lt;User&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">@Insert&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">suspend&lt;/span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">insertUser&lt;/span>(user: User)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">@Delete&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">suspend&lt;/span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">deleteUser&lt;/span>(user: User)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">@Database&lt;/span>(entities = [User&lt;span style="color:#ff7b72;font-weight:bold">::&lt;/span>&lt;span style="color:#ff7b72">class&lt;/span>], version = &lt;span style="color:#a5d6ff">1&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">abstract&lt;/span> &lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">AppDatabase&lt;/span> : RoomDatabase() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">abstract&lt;/span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">userDao&lt;/span>(): UserDao
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="quick-reference">Quick Reference&lt;/h2>
&lt;h3 id="variable-declaration-1">Variable Declaration&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">immutable&lt;/span> = &lt;span style="color:#a5d6ff">&amp;#34;Cannot change&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> &lt;span style="color:#79c0ff">mutable&lt;/span> = &lt;span style="color:#a5d6ff">&amp;#34;Can change&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">lateinit&lt;/span> &lt;span style="color:#ff7b72">var&lt;/span> &lt;span style="color:#79c0ff">lateInit&lt;/span>: String
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">lazy&lt;/span>: String &lt;span style="color:#ff7b72">by&lt;/span> lazy { &lt;span style="color:#a5d6ff">&amp;#34;Computed when needed&amp;#34;&lt;/span> }
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="function-declaration-1">Function Declaration&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">functionName&lt;/span>(&lt;span style="color:#ff7b72">param&lt;/span>: Type): ReturnType {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#ff7b72">value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">singleExpression&lt;/span>(x: Int) = x * &lt;span style="color:#a5d6ff">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">defaultParams&lt;/span>(x: Int = &lt;span style="color:#a5d6ff">0&lt;/span>) = x
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">varargs&lt;/span>(&lt;span style="color:#ff7b72">vararg&lt;/span> items: String) = items.toList()
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="classes">Classes&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">ClassName&lt;/span>(&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">property&lt;/span>: Type) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">method&lt;/span>() {}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">data&lt;/span> &lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">DataClass&lt;/span>(&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">prop&lt;/span>: Type)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">object&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Singleton&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">sealed&lt;/span> &lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">SealedClass&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="collections-1">Collections&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>listOf(&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>) &lt;span style="color:#8b949e;font-style:italic">// Immutable list
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>mutableListOf(&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>) &lt;span style="color:#8b949e;font-style:italic">// Mutable list
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>setOf(&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>) &lt;span style="color:#8b949e;font-style:italic">// Immutable set
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic">&lt;/span>mapOf(&lt;span style="color:#a5d6ff">&amp;#34;a&amp;#34;&lt;/span> to &lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;b&amp;#34;&lt;/span> to &lt;span style="color:#a5d6ff">2&lt;/span>) &lt;span style="color:#8b949e;font-style:italic">// Immutable map
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="coroutines-1">Coroutines&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>runBlocking { &lt;span style="color:#8b949e;font-style:italic">/* code */&lt;/span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>launch { &lt;span style="color:#8b949e;font-style:italic">/* fire and forget */&lt;/span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>async { &lt;span style="color:#8b949e;font-style:italic">/* return value */&lt;/span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">suspend&lt;/span> &lt;span style="color:#ff7b72">fun&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">name&lt;/span>() { &lt;span style="color:#8b949e;font-style:italic">/* suspending function */&lt;/span> }
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="null-safety-2">Null Safety&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-kotlin" data-lang="kotlin">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">var&lt;/span> &lt;span style="color:#79c0ff">nullable&lt;/span>: String? = &lt;span style="color:#ff7b72">null&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">length&lt;/span> = nullable&lt;span style="color:#ff7b72;font-weight:bold">?.&lt;/span>length
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">lengthOrZero&lt;/span> = nullable&lt;span style="color:#ff7b72;font-weight:bold">?.&lt;/span>length &lt;span style="color:#ff7b72;font-weight:bold">?:&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">val&lt;/span> &lt;span style="color:#79c0ff">definitelyNotNull&lt;/span> = nullable&lt;span style="color:#ff7b72;font-weight:bold">!!&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="see-also">See Also&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://kotlinlang.org/docs/">Kotlin Documentation&lt;/a> - Official documentation&lt;/li>
&lt;li>&lt;a href="https://play.kotlinlang.org/koans/">Kotlin Koans&lt;/a> - Interactive exercises&lt;/li>
&lt;li>&lt;a href="https://developer.android.com/kotlin">Android Kotlin Guide&lt;/a> - Android-specific Kotlin&lt;/li>
&lt;li>&lt;a href="https://kotlinlang.org/docs/coroutines-guide.html">Kotlin Coroutines Guide&lt;/a> - Coroutines documentation&lt;/li>
&lt;li>&lt;code>kotlinc&lt;/code> - Kotlin compiler&lt;/li>
&lt;li>&lt;code>kotlin&lt;/code> - Kotlin script runner&lt;/li>
&lt;/ul></description></item><item><title>Python</title><link>http://qref.eknath.dev/programming/python/</link><pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate><guid>http://qref.eknath.dev/programming/python/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>Python is a high-level, interpreted programming language known for its simplicity and readability. It&amp;rsquo;s widely used for web development, data science, automation, artificial intelligence, and rapid prototyping.&lt;/p>
&lt;h2 id="installation">Installation&lt;/h2>
&lt;h3 id="python-installation">Python Installation&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Ubuntu/Debian&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo apt install python3 python3-pip
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># macOS&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>brew install python3
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Windows&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Download from https://python.org/downloads/&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Check version&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>python3 --version
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>pip3 --version
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="package-management">Package Management&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Install package&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>pip install package_name
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Install specific version&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>pip install &lt;span style="color:#79c0ff">package_name&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span>1.2.3
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Install from requirements file&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>pip install -r requirements.txt
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># List installed packages&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>pip list
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Create virtual environment&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>python3 -m venv myenv
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>source myenv/bin/activate &lt;span style="color:#8b949e;font-style:italic"># Linux/Mac&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>myenv&lt;span style="color:#79c0ff">\S&lt;/span>cripts&lt;span style="color:#79c0ff">\a&lt;/span>ctivate &lt;span style="color:#8b949e;font-style:italic"># Windows&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="basic-syntax">Basic Syntax&lt;/h2>
&lt;h3 id="hello-world">Hello World&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>print(&lt;span style="color:#a5d6ff">&amp;#34;Hello, World!&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Multi-line string&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>message &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;&amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff">This is a
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff">multi-line string
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff">&amp;#34;&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(message)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="running-python">Running Python&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Interactive mode&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>python3
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Run script&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>python3 script.py
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Run module&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>python3 -m module_name
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># One-liner&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>python3 -c &lt;span style="color:#a5d6ff">&amp;#34;print(&amp;#39;Hello, World!&amp;#39;)&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="data-types">Data Types&lt;/h2>
&lt;h3 id="basic-types">Basic Types&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Numbers&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>integer &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">42&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>float_num &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">3.14&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>complex_num &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">3&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> &lt;span style="color:#a5d6ff">4&lt;/span>j
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># String&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>text &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Hello, World!&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>multiline &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;&amp;#34;&amp;#34;Line 1
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff">Line 2
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff">Line 3&amp;#34;&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Boolean&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>flag &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#79c0ff">True&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>is_valid &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#79c0ff">False&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># None&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>value &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#79c0ff">None&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="type-checking">Type Checking&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Type function&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(type(&lt;span style="color:#a5d6ff">42&lt;/span>)) &lt;span style="color:#8b949e;font-style:italic"># &amp;lt;class &amp;#39;int&amp;#39;&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(type(&lt;span style="color:#a5d6ff">3.14&lt;/span>)) &lt;span style="color:#8b949e;font-style:italic"># &amp;lt;class &amp;#39;float&amp;#39;&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(type(&lt;span style="color:#a5d6ff">&amp;#34;hello&amp;#34;&lt;/span>)) &lt;span style="color:#8b949e;font-style:italic"># &amp;lt;class &amp;#39;str&amp;#39;&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># isinstance function&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(isinstance(&lt;span style="color:#a5d6ff">42&lt;/span>, int)) &lt;span style="color:#8b949e;font-style:italic"># True&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(isinstance(&lt;span style="color:#a5d6ff">3.14&lt;/span>, float)) &lt;span style="color:#8b949e;font-style:italic"># True&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(isinstance(&lt;span style="color:#a5d6ff">&amp;#34;hello&amp;#34;&lt;/span>, str)) &lt;span style="color:#8b949e;font-style:italic"># True&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="type-conversion">Type Conversion&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># String to number&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>num &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> int(&lt;span style="color:#a5d6ff">&amp;#34;123&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>float_num &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> float(&lt;span style="color:#a5d6ff">&amp;#34;3.14&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Number to string&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>text &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> str(&lt;span style="color:#a5d6ff">123&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>text &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> str(&lt;span style="color:#a5d6ff">3.14&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># List to string&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>numbers &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> [&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>text &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> str(numbers)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>joined &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;, &amp;#34;&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>join(map(str, numbers))
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="variables-and-constants">Variables and Constants&lt;/h2>
&lt;h3 id="variable-assignment">Variable Assignment&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Basic assignment&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>y &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">20&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Multiple assignment&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>a, b, c &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> y &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> z &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Swapping&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>a, b &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> b, a
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Unpacking&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>numbers &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> [&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>first, second, third &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> numbers
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="constants-convention">Constants (Convention)&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Constants are uppercase by convention&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>PI &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">3.14159&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>MAX_SIZE &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">1000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>API_URL &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;https://api.example.com&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Use enum for related constants&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">from&lt;/span> &lt;span style="color:#ff7b72">enum&lt;/span> &lt;span style="color:#ff7b72">import&lt;/span> Enum
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Status&lt;/span>(Enum):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> PENDING &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> APPROVED &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> REJECTED &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">3&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="strings">Strings&lt;/h2>
&lt;h3 id="string-operations">String Operations&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># String creation&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>name &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>greeting &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#39;Hello&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>template &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#79c0ff">f&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Hello, &lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>name&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">!&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># String methods&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>text &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Hello, World!&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(text&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>upper()) &lt;span style="color:#8b949e;font-style:italic"># HELLO, WORLD!&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(text&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>lower()) &lt;span style="color:#8b949e;font-style:italic"># hello, world!&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(text&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>title()) &lt;span style="color:#8b949e;font-style:italic"># Hello, World!&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(text&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>replace(&lt;span style="color:#a5d6ff">&amp;#34;World&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;Python&amp;#34;&lt;/span>)) &lt;span style="color:#8b949e;font-style:italic"># Hello, Python!&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(text&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>split(&lt;span style="color:#a5d6ff">&amp;#34;,&amp;#34;&lt;/span>)) &lt;span style="color:#8b949e;font-style:italic"># [&amp;#39;Hello&amp;#39;, &amp;#39; World!&amp;#39;]&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(text&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>strip()) &lt;span style="color:#8b949e;font-style:italic"># Remove whitespace&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(text&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>startswith(&lt;span style="color:#a5d6ff">&amp;#34;Hello&amp;#34;&lt;/span>)) &lt;span style="color:#8b949e;font-style:italic"># True&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(text&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>endswith(&lt;span style="color:#a5d6ff">&amp;#34;!&amp;#34;&lt;/span>)) &lt;span style="color:#8b949e;font-style:italic"># True&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="string-formatting">String Formatting&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>name &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Alice&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>age &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">30&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># f-strings (Python 3.6+)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>message &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#79c0ff">f&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;My name is &lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>name&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff"> and I&amp;#39;m &lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>age&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff"> years old&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># format method&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>message &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;My name is &lt;/span>&lt;span style="color:#a5d6ff">{}&lt;/span>&lt;span style="color:#a5d6ff"> and I&amp;#39;m &lt;/span>&lt;span style="color:#a5d6ff">{}&lt;/span>&lt;span style="color:#a5d6ff"> years old&amp;#34;&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>format(name, age)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>message &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;My name is &lt;/span>&lt;span style="color:#a5d6ff">{name}&lt;/span>&lt;span style="color:#a5d6ff"> and I&amp;#39;m &lt;/span>&lt;span style="color:#a5d6ff">{age}&lt;/span>&lt;span style="color:#a5d6ff"> years old&amp;#34;&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>format(name&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>name, age&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>age)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># % formatting (older style)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>message &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;My name is &lt;/span>&lt;span style="color:#a5d6ff">%s&lt;/span>&lt;span style="color:#a5d6ff"> and I&amp;#39;m &lt;/span>&lt;span style="color:#a5d6ff">%d&lt;/span>&lt;span style="color:#a5d6ff"> years old&amp;#34;&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">%&lt;/span> (name, age)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Advanced formatting&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>number &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">3.14159&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>formatted &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#79c0ff">f&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>number&lt;span style="color:#a5d6ff">:&lt;/span>&lt;span style="color:#a5d6ff">.2f&lt;/span>&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># 3.14&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="string-indexing-and-slicing">String Indexing and Slicing&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>text &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Python&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Indexing&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(text[&lt;span style="color:#a5d6ff">0&lt;/span>]) &lt;span style="color:#8b949e;font-style:italic"># P&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(text[&lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span>&lt;span style="color:#a5d6ff">1&lt;/span>]) &lt;span style="color:#8b949e;font-style:italic"># n&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Slicing&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(text[&lt;span style="color:#a5d6ff">1&lt;/span>:&lt;span style="color:#a5d6ff">4&lt;/span>]) &lt;span style="color:#8b949e;font-style:italic"># yth&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(text[:&lt;span style="color:#a5d6ff">3&lt;/span>]) &lt;span style="color:#8b949e;font-style:italic"># Pyt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(text[&lt;span style="color:#a5d6ff">2&lt;/span>:]) &lt;span style="color:#8b949e;font-style:italic"># thon&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(text[::&lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span>&lt;span style="color:#a5d6ff">1&lt;/span>]) &lt;span style="color:#8b949e;font-style:italic"># nohtyP (reverse)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="data-structures">Data Structures&lt;/h2>
&lt;h3 id="lists">Lists&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># List creation&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>numbers &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> [&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>mixed &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> [&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;hello&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">3.14&lt;/span>, &lt;span style="color:#79c0ff">True&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>empty &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> []
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># List methods&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>numbers&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>append(&lt;span style="color:#a5d6ff">6&lt;/span>) &lt;span style="color:#8b949e;font-style:italic"># Add to end&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>numbers&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>insert(&lt;span style="color:#a5d6ff">0&lt;/span>, &lt;span style="color:#a5d6ff">0&lt;/span>) &lt;span style="color:#8b949e;font-style:italic"># Insert at index&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>numbers&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>remove(&lt;span style="color:#a5d6ff">3&lt;/span>) &lt;span style="color:#8b949e;font-style:italic"># Remove first occurrence&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>popped &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> numbers&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>pop() &lt;span style="color:#8b949e;font-style:italic"># Remove and return last&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>numbers&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>extend([&lt;span style="color:#a5d6ff">7&lt;/span>, &lt;span style="color:#a5d6ff">8&lt;/span>]) &lt;span style="color:#8b949e;font-style:italic"># Add multiple items&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>numbers&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>sort() &lt;span style="color:#8b949e;font-style:italic"># Sort in place&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>numbers&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>reverse() &lt;span style="color:#8b949e;font-style:italic"># Reverse in place&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># List comprehension&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>squares &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> [x&lt;span style="color:#ff7b72;font-weight:bold">**&lt;/span>&lt;span style="color:#a5d6ff">2&lt;/span> &lt;span style="color:#ff7b72">for&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> range(&lt;span style="color:#a5d6ff">10&lt;/span>)]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>evens &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> [x &lt;span style="color:#ff7b72">for&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> range(&lt;span style="color:#a5d6ff">20&lt;/span>) &lt;span style="color:#ff7b72">if&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">%&lt;/span> &lt;span style="color:#a5d6ff">2&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="tuples">Tuples&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Tuple creation&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>coordinates &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> (&lt;span style="color:#a5d6ff">10&lt;/span>, &lt;span style="color:#a5d6ff">20&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>single &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> (&lt;span style="color:#a5d6ff">42&lt;/span>,) &lt;span style="color:#8b949e;font-style:italic"># Single element tuple&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>empty &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> ()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Tuple unpacking&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x, y &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> coordinates
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Named tuples&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">from&lt;/span> &lt;span style="color:#ff7b72">collections&lt;/span> &lt;span style="color:#ff7b72">import&lt;/span> namedtuple
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Point &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> namedtuple(&lt;span style="color:#a5d6ff">&amp;#39;Point&amp;#39;&lt;/span>, [&lt;span style="color:#a5d6ff">&amp;#39;x&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;y&amp;#39;&lt;/span>])
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>p &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> Point(&lt;span style="color:#a5d6ff">10&lt;/span>, &lt;span style="color:#a5d6ff">20&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(p&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>x, p&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>y)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="dictionaries">Dictionaries&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Dictionary creation&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>person &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {&lt;span style="color:#a5d6ff">&amp;#34;name&amp;#34;&lt;/span>: &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;age&amp;#34;&lt;/span>: &lt;span style="color:#a5d6ff">30&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;city&amp;#34;&lt;/span>: &lt;span style="color:#a5d6ff">&amp;#34;New York&amp;#34;&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>empty &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Dictionary methods&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>person[&lt;span style="color:#a5d6ff">&amp;#34;email&amp;#34;&lt;/span>] &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;john@example.com&amp;#34;&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Add/update&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>age &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> person&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>get(&lt;span style="color:#a5d6ff">&amp;#34;age&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">0&lt;/span>) &lt;span style="color:#8b949e;font-style:italic"># Get with default&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>person&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>pop(&lt;span style="color:#a5d6ff">&amp;#34;city&amp;#34;&lt;/span>) &lt;span style="color:#8b949e;font-style:italic"># Remove and return&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>person&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>update({&lt;span style="color:#a5d6ff">&amp;#34;country&amp;#34;&lt;/span>: &lt;span style="color:#a5d6ff">&amp;#34;USA&amp;#34;&lt;/span>}) &lt;span style="color:#8b949e;font-style:italic"># Update multiple&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Dictionary comprehension&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>squares &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {x: x&lt;span style="color:#ff7b72;font-weight:bold">**&lt;/span>&lt;span style="color:#a5d6ff">2&lt;/span> &lt;span style="color:#ff7b72">for&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> range(&lt;span style="color:#a5d6ff">5&lt;/span>)}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>filtered &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {k: v &lt;span style="color:#ff7b72">for&lt;/span> k, v &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> person&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>items() &lt;span style="color:#ff7b72">if&lt;/span> v &lt;span style="color:#ff7b72;font-weight:bold">!=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Iteration&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> key &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> person:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(key, person[key])
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> key, value &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> person&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>items():
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(key, value)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="sets">Sets&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Set creation&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>numbers &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>empty &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> set()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Set operations&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>numbers&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>add(&lt;span style="color:#a5d6ff">6&lt;/span>) &lt;span style="color:#8b949e;font-style:italic"># Add element&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>numbers&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>remove(&lt;span style="color:#a5d6ff">3&lt;/span>) &lt;span style="color:#8b949e;font-style:italic"># Remove element (raises error if not found)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>numbers&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>discard(&lt;span style="color:#a5d6ff">3&lt;/span>) &lt;span style="color:#8b949e;font-style:italic"># Remove element (no error if not found)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Set operations&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>set1 &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>set2 &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {&lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>union &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> set1 &lt;span style="color:#ff7b72;font-weight:bold">|&lt;/span> set2 &lt;span style="color:#8b949e;font-style:italic"># {1, 2, 3, 4, 5}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>intersection &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> set1 &lt;span style="color:#ff7b72;font-weight:bold">&amp;amp;&lt;/span> set2 &lt;span style="color:#8b949e;font-style:italic"># {3}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>difference &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> set1 &lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span> set2 &lt;span style="color:#8b949e;font-style:italic"># {1, 2}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="control-structures">Control Structures&lt;/h2>
&lt;h3 id="conditionals">Conditionals&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># if-elif-else&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#a5d6ff">&amp;#34;Positive&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">elif&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#a5d6ff">&amp;#34;Negative&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">else&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#a5d6ff">&amp;#34;Zero&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Ternary operator&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>result &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;positive&amp;#34;&lt;/span> &lt;span style="color:#ff7b72">if&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span> &lt;span style="color:#ff7b72">else&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;not positive&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Multiple conditions&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">and&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">100&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#a5d6ff">&amp;#34;Between 0 and 100&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">or&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> &lt;span style="color:#a5d6ff">100&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#a5d6ff">&amp;#34;Outside range&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="loops">Loops&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># for loop&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> range(&lt;span style="color:#a5d6ff">5&lt;/span>):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(i)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># for loop with list&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>fruits &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> [&lt;span style="color:#a5d6ff">&amp;#34;apple&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;banana&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;orange&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> fruit &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> fruits:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(fruit)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># for loop with index&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> i, fruit &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> enumerate(fruits):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#79c0ff">f&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>i&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">: &lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>fruit&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># while loop&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>count &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">while&lt;/span> count &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">5&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(count)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> count &lt;span style="color:#ff7b72;font-weight:bold">+=&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Loop control&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> range(&lt;span style="color:#a5d6ff">10&lt;/span>):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">3&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">continue&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Skip iteration&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">7&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">break&lt;/span> &lt;span style="color:#8b949e;font-style:italic"># Exit loop&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(i)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="loop-patterns">Loop Patterns&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Loop with else&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> range(&lt;span style="color:#a5d6ff">5&lt;/span>):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">break&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">else&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#a5d6ff">&amp;#34;Loop completed normally&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Nested loops&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> range(&lt;span style="color:#a5d6ff">3&lt;/span>):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">for&lt;/span> j &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> range(&lt;span style="color:#a5d6ff">3&lt;/span>):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#79c0ff">f&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;(&lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>i&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">, &lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>j&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">)&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Dictionary iteration&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>person &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {&lt;span style="color:#a5d6ff">&amp;#34;name&amp;#34;&lt;/span>: &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;age&amp;#34;&lt;/span>: &lt;span style="color:#a5d6ff">30&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> key, value &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> person&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>items():
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#79c0ff">f&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>key&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">: &lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>value&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="functions">Functions&lt;/h2>
&lt;h3 id="function-definition">Function Definition&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Basic function&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">greet&lt;/span>(name):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#79c0ff">f&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Hello, &lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>name&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">!&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Function with default parameters&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">greet&lt;/span>(name&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;World&amp;#34;&lt;/span>):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#79c0ff">f&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Hello, &lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>name&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">!&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Function with multiple parameters&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">add&lt;/span>(a, b):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> a &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> b
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Function with variable arguments&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">sum_all&lt;/span>(&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>args):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> sum(args)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Function with keyword arguments&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">create_profile&lt;/span>(&lt;span style="color:#ff7b72;font-weight:bold">**&lt;/span>kwargs):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> kwargs
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Mixed arguments&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">process_data&lt;/span>(required, &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>args, &lt;span style="color:#ff7b72;font-weight:bold">**&lt;/span>kwargs):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#79c0ff">f&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Required: &lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>required&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#79c0ff">f&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Args: &lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>args&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#79c0ff">f&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Kwargs: &lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>kwargs&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="lambda-functions">Lambda Functions&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Lambda function&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>square &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72">lambda&lt;/span> x: x&lt;span style="color:#ff7b72;font-weight:bold">**&lt;/span>&lt;span style="color:#a5d6ff">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>add &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72">lambda&lt;/span> x, y: x &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> y
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Lambda with higher-order functions&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>numbers &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> [&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>squared &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> list(map(&lt;span style="color:#ff7b72">lambda&lt;/span> x: x&lt;span style="color:#ff7b72;font-weight:bold">**&lt;/span>&lt;span style="color:#a5d6ff">2&lt;/span>, numbers))
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>evens &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> list(filter(&lt;span style="color:#ff7b72">lambda&lt;/span> x: x &lt;span style="color:#ff7b72;font-weight:bold">%&lt;/span> &lt;span style="color:#a5d6ff">2&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>, numbers))
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="decorators">Decorators&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Simple decorator&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">my_decorator&lt;/span>(func):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">wrapper&lt;/span>():
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#a5d6ff">&amp;#34;Before function&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> result &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> func()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#a5d6ff">&amp;#34;After function&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> result
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> wrapper
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">@my_decorator&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">say_hello&lt;/span>():
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#a5d6ff">&amp;#34;Hello!&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Decorator with arguments&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">timing_decorator&lt;/span>(func):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">time&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">wrapper&lt;/span>(&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>args, &lt;span style="color:#ff7b72;font-weight:bold">**&lt;/span>kwargs):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> start &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> time&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>time()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> result &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> func(&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>args, &lt;span style="color:#ff7b72;font-weight:bold">**&lt;/span>kwargs)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> end &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> time&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>time()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#79c0ff">f&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>func&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>__name__&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff"> took &lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>end &lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span> start&lt;span style="color:#a5d6ff">:&lt;/span>&lt;span style="color:#a5d6ff">.2f&lt;/span>&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff"> seconds&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> result
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> wrapper
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">@timing_decorator&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">slow_function&lt;/span>():
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> time&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>sleep(&lt;span style="color:#a5d6ff">1&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Done&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="object-oriented-programming">Object-Oriented Programming&lt;/h2>
&lt;h3 id="classes-and-objects">Classes and Objects&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Person&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic"># Class variable&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> species &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Homo sapiens&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic"># Constructor&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> __init__(self, name, age):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>name &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> name &lt;span style="color:#8b949e;font-style:italic"># Instance variable&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>age &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> age
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic"># Instance method&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">greet&lt;/span>(self):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#79c0ff">f&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Hello, I&amp;#39;m &lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>name&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic"># Class method&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">@classmethod&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">create_child&lt;/span>(cls, name):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> cls(name, &lt;span style="color:#a5d6ff">0&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic"># Static method&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">@staticmethod&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">is_adult&lt;/span>(age):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> age &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;=&lt;/span> &lt;span style="color:#a5d6ff">18&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic"># String representation&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> __str__(self):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#79c0ff">f&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Person(name=&lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>name&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">, age=&lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>age&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">)&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Usage&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>person &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> Person(&lt;span style="color:#a5d6ff">&amp;#34;Alice&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">30&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(person&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>greet())
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(person)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="inheritance">Inheritance&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Base class&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Animal&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> __init__(self, name):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>name &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> name
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">make_sound&lt;/span>(self):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">pass&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">info&lt;/span>(self):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#79c0ff">f&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;I am &lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>name&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Derived class&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Dog&lt;/span>(Animal):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> __init__(self, name, breed):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> super()&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>__init__(name) &lt;span style="color:#8b949e;font-style:italic"># Call parent constructor&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>breed &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> breed
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">make_sound&lt;/span>(self):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;Woof!&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">info&lt;/span>(self):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#79c0ff">f&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>super()&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>info()&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff"> and I&amp;#39;m a &lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>breed&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Usage&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>dog &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> Dog(&lt;span style="color:#a5d6ff">&amp;#34;Buddy&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;Golden Retriever&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(dog&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>info())
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(dog&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>make_sound())
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="properties-and-magic-methods">Properties and Magic Methods&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Circle&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> __init__(self, radius):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>_radius &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> radius
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">@property&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">radius&lt;/span>(self):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>_radius
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">@radius.setter&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">radius&lt;/span>(self, value):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> value &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">raise&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">ValueError&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;Radius cannot be negative&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>_radius &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> value
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#d2a8ff;font-weight:bold">@property&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">area&lt;/span>(self):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#a5d6ff">3.14159&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>_radius &lt;span style="color:#ff7b72;font-weight:bold">**&lt;/span> &lt;span style="color:#a5d6ff">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic"># Magic methods&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> __str__(self):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#79c0ff">f&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Circle(radius=&lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>radius&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">)&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> __repr__(self):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> &lt;span style="color:#79c0ff">f&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Circle(&lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>radius&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">)&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> __eq__(self, other):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>radius &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> other&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>radius
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> __lt__(self, other):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>radius &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> other&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>radius
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Usage&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>circle &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> Circle(&lt;span style="color:#a5d6ff">5&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(circle&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>area)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>circle&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>radius &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(circle)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="error-handling">Error Handling&lt;/h2>
&lt;h3 id="try-except">Try-Except&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">try&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> result &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">10&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">/&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">except&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">ZeroDivisionError&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#a5d6ff">&amp;#34;Cannot divide by zero&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">except&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">ValueError&lt;/span> &lt;span style="color:#ff7b72">as&lt;/span> e:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#79c0ff">f&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Value error: &lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>e&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">except&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Exception&lt;/span> &lt;span style="color:#ff7b72">as&lt;/span> e:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#79c0ff">f&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;General error: &lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>e&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">else&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#a5d6ff">&amp;#34;No error occurred&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">finally&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#a5d6ff">&amp;#34;This always runs&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="custom-exceptions">Custom Exceptions&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">CustomError&lt;/span>(&lt;span style="color:#f0883e;font-weight:bold">Exception&lt;/span>):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> __init__(self, message):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>message &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> message
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> super()&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>__init__(self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>message)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">validate_age&lt;/span>(age):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> age &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">raise&lt;/span> CustomError(&lt;span style="color:#a5d6ff">&amp;#34;Age cannot be negative&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> age &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> &lt;span style="color:#a5d6ff">150&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">raise&lt;/span> CustomError(&lt;span style="color:#a5d6ff">&amp;#34;Age seems unrealistic&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> age
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Usage&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">try&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> validate_age(&lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span>&lt;span style="color:#a5d6ff">5&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">except&lt;/span> CustomError &lt;span style="color:#ff7b72">as&lt;/span> e:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(e&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>message)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="file-io">File I/O&lt;/h2>
&lt;h3 id="reading-files">Reading Files&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Read entire file&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">with&lt;/span> open(&lt;span style="color:#a5d6ff">&amp;#39;file.txt&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;r&amp;#39;&lt;/span>) &lt;span style="color:#ff7b72">as&lt;/span> f:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> content &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> f&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>read()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Read line by line&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">with&lt;/span> open(&lt;span style="color:#a5d6ff">&amp;#39;file.txt&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;r&amp;#39;&lt;/span>) &lt;span style="color:#ff7b72">as&lt;/span> f:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">for&lt;/span> line &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> f:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(line&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>strip())
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Read all lines&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">with&lt;/span> open(&lt;span style="color:#a5d6ff">&amp;#39;file.txt&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;r&amp;#39;&lt;/span>) &lt;span style="color:#ff7b72">as&lt;/span> f:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> lines &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> f&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>readlines()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Read with error handling&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">try&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">with&lt;/span> open(&lt;span style="color:#a5d6ff">&amp;#39;file.txt&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;r&amp;#39;&lt;/span>) &lt;span style="color:#ff7b72">as&lt;/span> f:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> content &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> f&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>read()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">except&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">FileNotFoundError&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#a5d6ff">&amp;#34;File not found&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">except&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">IOError&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#a5d6ff">&amp;#34;Error reading file&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="writing-files">Writing Files&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Write to file&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">with&lt;/span> open(&lt;span style="color:#a5d6ff">&amp;#39;output.txt&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;w&amp;#39;&lt;/span>) &lt;span style="color:#ff7b72">as&lt;/span> f:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> f&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>write(&lt;span style="color:#a5d6ff">&amp;#34;Hello, World!&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> f&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>write(&lt;span style="color:#a5d6ff">&amp;#34;Second line&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Append to file&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">with&lt;/span> open(&lt;span style="color:#a5d6ff">&amp;#39;output.txt&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;a&amp;#39;&lt;/span>) &lt;span style="color:#ff7b72">as&lt;/span> f:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> f&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>write(&lt;span style="color:#a5d6ff">&amp;#34;Appended line&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Write list to file&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>lines &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> [&lt;span style="color:#a5d6ff">&amp;#34;Line 1&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;Line 2&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;Line 3&lt;/span>&lt;span style="color:#79c0ff">\n&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">with&lt;/span> open(&lt;span style="color:#a5d6ff">&amp;#39;output.txt&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;w&amp;#39;&lt;/span>) &lt;span style="color:#ff7b72">as&lt;/span> f:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> f&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>writelines(lines)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="json-files">JSON Files&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">json&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Write JSON&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>data &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {&lt;span style="color:#a5d6ff">&amp;#34;name&amp;#34;&lt;/span>: &lt;span style="color:#a5d6ff">&amp;#34;John&amp;#34;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;age&amp;#34;&lt;/span>: &lt;span style="color:#a5d6ff">30&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#34;city&amp;#34;&lt;/span>: &lt;span style="color:#a5d6ff">&amp;#34;New York&amp;#34;&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">with&lt;/span> open(&lt;span style="color:#a5d6ff">&amp;#39;data.json&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;w&amp;#39;&lt;/span>) &lt;span style="color:#ff7b72">as&lt;/span> f:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> json&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>dump(data, f, indent&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#a5d6ff">2&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Read JSON&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">with&lt;/span> open(&lt;span style="color:#a5d6ff">&amp;#39;data.json&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;r&amp;#39;&lt;/span>) &lt;span style="color:#ff7b72">as&lt;/span> f:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> data &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> json&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>load(f)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># JSON strings&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>json_string &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> json&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>dumps(data)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>data &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> json&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>loads(json_string)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="modules-and-packages">Modules and Packages&lt;/h2>
&lt;h3 id="importing">Importing&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Import entire module&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">math&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(math&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>sqrt(&lt;span style="color:#a5d6ff">16&lt;/span>))
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Import specific functions&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">from&lt;/span> &lt;span style="color:#ff7b72">math&lt;/span> &lt;span style="color:#ff7b72">import&lt;/span> sqrt, pi
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(sqrt(&lt;span style="color:#a5d6ff">16&lt;/span>))
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Import with alias&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">numpy&lt;/span> &lt;span style="color:#ff7b72">as&lt;/span> &lt;span style="color:#ff7b72">np&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">pandas&lt;/span> &lt;span style="color:#ff7b72">as&lt;/span> &lt;span style="color:#ff7b72">pd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Import all (not recommended)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">from&lt;/span> &lt;span style="color:#ff7b72">math&lt;/span> &lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="creating-modules">Creating Modules&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># utils.py&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">add&lt;/span>(a, b):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> a &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> b
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">multiply&lt;/span>(a, b):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> a &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> b
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># main.py&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">utils&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>result &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> utils&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>add(&lt;span style="color:#a5d6ff">5&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Or&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">from&lt;/span> &lt;span style="color:#ff7b72">utils&lt;/span> &lt;span style="color:#ff7b72">import&lt;/span> add, multiply
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>result &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> add(&lt;span style="color:#a5d6ff">5&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="package-structure">Package Structure&lt;/h3>
&lt;pre tabindex="0">&lt;code>mypackage/
 __init__.py
 module1.py
 module2.py
 subpackage/
 __init__.py
 submodule.py
&lt;/code>&lt;/pre>&lt;h2 id="standard-library">Standard Library&lt;/h2>
&lt;h3 id="common-modules">Common Modules&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># os - Operating system interface&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">os&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>current_dir &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> os&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>getcwd()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>os&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>mkdir(&lt;span style="color:#a5d6ff">&amp;#39;new_directory&amp;#39;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>os&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>remove(&lt;span style="color:#a5d6ff">&amp;#39;file.txt&amp;#39;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># sys - System-specific parameters&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">sys&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(sys&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>version)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sys&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>exit(&lt;span style="color:#a5d6ff">0&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># datetime - Date and time handling&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">from&lt;/span> &lt;span style="color:#ff7b72">datetime&lt;/span> &lt;span style="color:#ff7b72">import&lt;/span> datetime, date, timedelta
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>now &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> datetime&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>now()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>today &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> date&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>today()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>future &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> now &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> timedelta(days&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>&lt;span style="color:#a5d6ff">7&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># random - Random number generation&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">random&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>random_int &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> random&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>randint(&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">10&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>random_choice &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> random&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>choice([&lt;span style="color:#a5d6ff">&amp;#39;apple&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;banana&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;orange&amp;#39;&lt;/span>])
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>random&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>shuffle(my_list)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># collections - Specialized container datatypes&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">from&lt;/span> &lt;span style="color:#ff7b72">collections&lt;/span> &lt;span style="color:#ff7b72">import&lt;/span> Counter, defaultdict, deque
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>counter &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> Counter([&lt;span style="color:#a5d6ff">&amp;#39;a&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;b&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;a&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;c&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;b&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;a&amp;#39;&lt;/span>])
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>dd &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> defaultdict(list)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>queue &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> deque([&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>])
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="regular-expressions">Regular Expressions&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">re&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Match patterns&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>pattern &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#79c0ff">r&lt;/span>&lt;span style="color:#a5d6ff">&amp;#39;\d+&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>text &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;I have 5 apples and 3 oranges&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>matches &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> re&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>findall(pattern, text) &lt;span style="color:#8b949e;font-style:italic"># [&amp;#39;5&amp;#39;, &amp;#39;3&amp;#39;]&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Replace patterns&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>new_text &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> re&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>sub(&lt;span style="color:#79c0ff">r&lt;/span>&lt;span style="color:#a5d6ff">&amp;#39;\d+&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;X&amp;#39;&lt;/span>, text) &lt;span style="color:#8b949e;font-style:italic"># &amp;#34;I have X apples and X oranges&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Search and groups&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>pattern &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#79c0ff">r&lt;/span>&lt;span style="color:#a5d6ff">&amp;#39;(\w+)@(\w+\.\w+)&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>email &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;user@example.com&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">match&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> re&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>search(pattern, email)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> &lt;span style="color:#ff7b72">match&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> username &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72">match&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>group(&lt;span style="color:#a5d6ff">1&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> domain &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#ff7b72">match&lt;/span>&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>group(&lt;span style="color:#a5d6ff">2&lt;/span>)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="list-comprehensions-and-generators">List Comprehensions and Generators&lt;/h2>
&lt;h3 id="list-comprehensions">List Comprehensions&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Basic list comprehension&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>squares &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> [x&lt;span style="color:#ff7b72;font-weight:bold">**&lt;/span>&lt;span style="color:#a5d6ff">2&lt;/span> &lt;span style="color:#ff7b72">for&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> range(&lt;span style="color:#a5d6ff">10&lt;/span>)]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># With condition&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>evens &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> [x &lt;span style="color:#ff7b72">for&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> range(&lt;span style="color:#a5d6ff">20&lt;/span>) &lt;span style="color:#ff7b72">if&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">%&lt;/span> &lt;span style="color:#a5d6ff">2&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Nested comprehension&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>matrix &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> [[i&lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span>j &lt;span style="color:#ff7b72">for&lt;/span> j &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> range(&lt;span style="color:#a5d6ff">3&lt;/span>)] &lt;span style="color:#ff7b72">for&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> range(&lt;span style="color:#a5d6ff">3&lt;/span>)]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Dictionary comprehension&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>word_lengths &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {word: len(word) &lt;span style="color:#ff7b72">for&lt;/span> word &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> [&lt;span style="color:#a5d6ff">&amp;#39;hello&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;world&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;python&amp;#39;&lt;/span>]}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Set comprehension&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>unique_lengths &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {len(word) &lt;span style="color:#ff7b72">for&lt;/span> word &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> [&lt;span style="color:#a5d6ff">&amp;#39;hello&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;world&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;python&amp;#39;&lt;/span>]}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="generators">Generators&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Generator function&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">fibonacci&lt;/span>(n):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> a, b &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>, &lt;span style="color:#a5d6ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">for&lt;/span> _ &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> range(n):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">yield&lt;/span> a
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> a, b &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> b, a &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> b
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Usage&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>fib &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> fibonacci(&lt;span style="color:#a5d6ff">10&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> num &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> fib:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(num)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Generator expression&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>squares &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> (x&lt;span style="color:#ff7b72;font-weight:bold">**&lt;/span>&lt;span style="color:#a5d6ff">2&lt;/span> &lt;span style="color:#ff7b72">for&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> range(&lt;span style="color:#a5d6ff">10&lt;/span>))
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(list(squares))
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="advanced-features">Advanced Features&lt;/h2>
&lt;h3 id="context-managers">Context Managers&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Custom context manager&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">FileManager&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> __init__(self, filename, mode):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>filename &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> filename
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>mode &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> mode
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>file &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#79c0ff">None&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> __enter__(self):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>file &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> open(self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>filename, self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>mode)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>file
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> __exit__(self, exc_type, exc_val, exc_tb):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>file:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>file&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>close()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Usage&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">with&lt;/span> FileManager(&lt;span style="color:#a5d6ff">&amp;#39;test.txt&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;w&amp;#39;&lt;/span>) &lt;span style="color:#ff7b72">as&lt;/span> f:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> f&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>write(&lt;span style="color:#a5d6ff">&amp;#39;Hello, World!&amp;#39;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Using contextlib&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">from&lt;/span> &lt;span style="color:#ff7b72">contextlib&lt;/span> &lt;span style="color:#ff7b72">import&lt;/span> contextmanager
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">@contextmanager&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">timer&lt;/span>():
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">time&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> start &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> time&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>time()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">yield&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> end &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> time&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>time()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#79c0ff">f&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Time elapsed: &lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>end &lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span> start&lt;span style="color:#a5d6ff">:&lt;/span>&lt;span style="color:#a5d6ff">.2f&lt;/span>&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff"> seconds&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Usage&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">with&lt;/span> timer():
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic"># Some time-consuming operation&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> time&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>sleep(&lt;span style="color:#a5d6ff">1&lt;/span>)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="iterators">Iterators&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Counter&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> __init__(self, max_count):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>max_count &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> max_count
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>count &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> __iter__(self):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> self
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> __next__(self):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>count &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>max_count:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>count &lt;span style="color:#ff7b72;font-weight:bold">+=&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>count
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">else&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">raise&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">StopIteration&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Usage&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>counter &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> Counter(&lt;span style="color:#a5d6ff">3&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> num &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> counter:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(num) &lt;span style="color:#8b949e;font-style:italic"># 1, 2, 3&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="popular-libraries">Popular Libraries&lt;/h2>
&lt;h3 id="numpy">NumPy&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">numpy&lt;/span> &lt;span style="color:#ff7b72">as&lt;/span> &lt;span style="color:#ff7b72">np&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Create arrays&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>arr &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> np&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>array([&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>])
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>matrix &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> np&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>array([[&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>], [&lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>]])
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>zeros &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> np&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>zeros((&lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>))
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ones &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> np&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>ones((&lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>))
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Array operations&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>result &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> arr &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> &lt;span style="color:#a5d6ff">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>dot_product &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> np&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>dot(matrix, matrix)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="pandas">Pandas&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">pandas&lt;/span> &lt;span style="color:#ff7b72">as&lt;/span> &lt;span style="color:#ff7b72">pd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Create DataFrame&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>df &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> pd&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>DataFrame({
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">&amp;#39;name&amp;#39;&lt;/span>: [&lt;span style="color:#a5d6ff">&amp;#39;Alice&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;Bob&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;Charlie&amp;#39;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">&amp;#39;age&amp;#39;&lt;/span>: [&lt;span style="color:#a5d6ff">25&lt;/span>, &lt;span style="color:#a5d6ff">30&lt;/span>, &lt;span style="color:#a5d6ff">35&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">&amp;#39;city&amp;#39;&lt;/span>: [&lt;span style="color:#a5d6ff">&amp;#39;New York&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;London&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;Tokyo&amp;#39;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>})
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># DataFrame operations&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>filtered &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> df[df[&lt;span style="color:#a5d6ff">&amp;#39;age&amp;#39;&lt;/span>] &lt;span style="color:#ff7b72;font-weight:bold">&amp;gt;&lt;/span> &lt;span style="color:#a5d6ff">25&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>grouped &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> df&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>groupby(&lt;span style="color:#a5d6ff">&amp;#39;city&amp;#39;&lt;/span>)&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>mean()
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="requests">Requests&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">requests&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># GET request&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>response &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> requests&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>get(&lt;span style="color:#a5d6ff">&amp;#39;https://api.example.com/data&amp;#39;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> response&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>status_code &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">200&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> data &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> response&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>json()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># POST request&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>payload &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> {&lt;span style="color:#a5d6ff">&amp;#39;key&amp;#39;&lt;/span>: &lt;span style="color:#a5d6ff">&amp;#39;value&amp;#39;&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>response &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> requests&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>post(&lt;span style="color:#a5d6ff">&amp;#39;https://api.example.com/create&amp;#39;&lt;/span>, json&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>payload)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="testing">Testing&lt;/h2>
&lt;h3 id="unit-testing">Unit Testing&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">unittest&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">TestMathFunctions&lt;/span>(unittest&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>TestCase):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">test_add&lt;/span>(self):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>assertEqual(add(&lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>), &lt;span style="color:#a5d6ff">5&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>assertEqual(add(&lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span>&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">1&lt;/span>), &lt;span style="color:#a5d6ff">0&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">test_divide&lt;/span>(self):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>assertEqual(divide(&lt;span style="color:#a5d6ff">10&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>), &lt;span style="color:#a5d6ff">5&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">with&lt;/span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>assertRaises(&lt;span style="color:#f0883e;font-weight:bold">ZeroDivisionError&lt;/span>):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> divide(&lt;span style="color:#a5d6ff">10&lt;/span>, &lt;span style="color:#a5d6ff">0&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">setUp&lt;/span>(self):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic"># Run before each test&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>calculator &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> Calculator()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">tearDown&lt;/span>(self):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8b949e;font-style:italic"># Run after each test&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">pass&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> __name__ &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">&amp;#39;__main__&amp;#39;&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> unittest&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>main()
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="pytest">Pytest&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">pytest&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">test_add&lt;/span>():
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">assert&lt;/span> add(&lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>) &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">assert&lt;/span> add(&lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span>&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">1&lt;/span>) &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">test_divide&lt;/span>():
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">assert&lt;/span> divide(&lt;span style="color:#a5d6ff">10&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>) &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">with&lt;/span> pytest&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>raises(&lt;span style="color:#f0883e;font-weight:bold">ZeroDivisionError&lt;/span>):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> divide(&lt;span style="color:#a5d6ff">10&lt;/span>, &lt;span style="color:#a5d6ff">0&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Fixtures&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#d2a8ff;font-weight:bold">@pytest.fixture&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">sample_data&lt;/span>():
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> [&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">test_sum&lt;/span>(sample_data):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">assert&lt;/span> sum(sample_data) &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">15&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="best-practices">Best Practices&lt;/h2>
&lt;h3 id="code-style-pep-8">Code Style (PEP 8)&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Good&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">calculate_area&lt;/span>(radius):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">&amp;#34;&amp;#34;&amp;#34;Calculate the area of a circle.&amp;#34;&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> pi &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">3.14159&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> pi &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> radius &lt;span style="color:#ff7b72;font-weight:bold">**&lt;/span> &lt;span style="color:#a5d6ff">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Variable naming&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>user_name &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;john_doe&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>MAX_RETRIES &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Class naming&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">UserManager&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">pass&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Constants&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>API_BASE_URL &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> &lt;span style="color:#a5d6ff">&amp;#34;https://api.example.com&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="documentation">Documentation&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">fibonacci&lt;/span>(n):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a5d6ff">&amp;#34;&amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff"> Generate Fibonacci sequence up to n terms.
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff"> Args:
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff"> n (int): Number of terms to generate
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff"> Returns:
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff"> list: List of Fibonacci numbers
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff"> 
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff"> Raises:
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff"> ValueError: If n is negative
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a5d6ff"> &amp;#34;&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> n &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;&lt;/span> &lt;span style="color:#a5d6ff">0&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">raise&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">ValueError&lt;/span>(&lt;span style="color:#a5d6ff">&amp;#34;n must be non-negative&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">if&lt;/span> n &lt;span style="color:#ff7b72;font-weight:bold">&amp;lt;=&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> [&lt;span style="color:#a5d6ff">0&lt;/span>] &lt;span style="color:#ff7b72">if&lt;/span> n &lt;span style="color:#ff7b72;font-weight:bold">==&lt;/span> &lt;span style="color:#a5d6ff">1&lt;/span> &lt;span style="color:#ff7b72">else&lt;/span> []
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fib &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> [&lt;span style="color:#a5d6ff">0&lt;/span>, &lt;span style="color:#a5d6ff">1&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">for&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> range(&lt;span style="color:#a5d6ff">2&lt;/span>, n):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fib&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>append(fib[i&lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span>&lt;span style="color:#a5d6ff">1&lt;/span>] &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> fib[i&lt;span style="color:#ff7b72;font-weight:bold">-&lt;/span>&lt;span style="color:#a5d6ff">2&lt;/span>])
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> fib
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="virtual-environments">Virtual Environments&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Create virtual environment&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>python3 -m venv myenv
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Activate&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>source myenv/bin/activate &lt;span style="color:#8b949e;font-style:italic"># Linux/Mac&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>myenv&lt;span style="color:#79c0ff">\S&lt;/span>cripts&lt;span style="color:#79c0ff">\a&lt;/span>ctivate &lt;span style="color:#8b949e;font-style:italic"># Windows&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Install packages&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>pip install requests pandas
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Save requirements&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>pip freeze &amp;gt; requirements.txt
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Deactivate&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deactivate
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="performance-tips">Performance Tips&lt;/h2>
&lt;h3 id="optimization">Optimization&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Use list comprehensions instead of loops&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>squares &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> [x&lt;span style="color:#ff7b72;font-weight:bold">**&lt;/span>&lt;span style="color:#a5d6ff">2&lt;/span> &lt;span style="color:#ff7b72">for&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> range(&lt;span style="color:#a5d6ff">1000&lt;/span>)] &lt;span style="color:#8b949e;font-style:italic"># Faster&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>squares &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> []
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">for&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> range(&lt;span style="color:#a5d6ff">1000&lt;/span>):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> squares&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>append(x&lt;span style="color:#ff7b72;font-weight:bold">**&lt;/span>&lt;span style="color:#a5d6ff">2&lt;/span>) &lt;span style="color:#8b949e;font-style:italic"># Slower&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Use generators for large datasets&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">large_sequence&lt;/span>():
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">for&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> range(&lt;span style="color:#a5d6ff">1000000&lt;/span>):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">yield&lt;/span> i &lt;span style="color:#ff7b72;font-weight:bold">*&lt;/span> &lt;span style="color:#a5d6ff">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Use built-in functions&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>numbers &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> [&lt;span style="color:#a5d6ff">1&lt;/span>, &lt;span style="color:#a5d6ff">2&lt;/span>, &lt;span style="color:#a5d6ff">3&lt;/span>, &lt;span style="color:#a5d6ff">4&lt;/span>, &lt;span style="color:#a5d6ff">5&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>total &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> sum(numbers) &lt;span style="color:#8b949e;font-style:italic"># Faster than manual loop&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Use sets for membership testing&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>large_set &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> set(range(&lt;span style="color:#a5d6ff">1000&lt;/span>))
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">if&lt;/span> &lt;span style="color:#a5d6ff">500&lt;/span> &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> large_set: &lt;span style="color:#8b949e;font-style:italic"># O(1) average case&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#a5d6ff">&amp;#34;Found&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="memory-management">Memory Management&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Use slots for memory-efficient classes&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">class&lt;/span> &lt;span style="color:#f0883e;font-weight:bold">Point&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> __slots__ &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> [&lt;span style="color:#a5d6ff">&amp;#39;x&amp;#39;&lt;/span>, &lt;span style="color:#a5d6ff">&amp;#39;y&amp;#39;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">def&lt;/span> __init__(self, x, y):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>x &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> x
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> self&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>y &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> y
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Use generators for large datasets&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">read_large_file&lt;/span>(filename):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">with&lt;/span> open(filename) &lt;span style="color:#ff7b72">as&lt;/span> f:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">for&lt;/span> line &lt;span style="color:#ff7b72;font-weight:bold">in&lt;/span> f:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">yield&lt;/span> line&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>strip()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Profile code&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">cProfile&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cProfile&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>run(&lt;span style="color:#a5d6ff">&amp;#39;my_function()&amp;#39;&lt;/span>)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="debugging">Debugging&lt;/h2>
&lt;h3 id="print-debugging">Print Debugging&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">def&lt;/span> &lt;span style="color:#d2a8ff;font-weight:bold">debug_function&lt;/span>(x, y):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#79c0ff">f&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Input: x=&lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>x&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">, y=&lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>y&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> result &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> x &lt;span style="color:#ff7b72;font-weight:bold">+&lt;/span> y
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#79c0ff">f&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;Result: &lt;/span>&lt;span style="color:#a5d6ff">{&lt;/span>result&lt;span style="color:#a5d6ff">}&lt;/span>&lt;span style="color:#a5d6ff">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff7b72">return&lt;/span> result
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Using pdb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">pdb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>pdb&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>set_trace() &lt;span style="color:#8b949e;font-style:italic"># Debugger will stop here&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="logging">Logging&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff7b72">import&lt;/span> &lt;span style="color:#ff7b72">logging&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Configure logging&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>logging&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>basicConfig(level&lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span>logging&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>INFO)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>logger &lt;span style="color:#ff7b72;font-weight:bold">=&lt;/span> logging&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>getLogger(__name__)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8b949e;font-style:italic"># Use logging instead of print&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>logger&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>info(&lt;span style="color:#a5d6ff">&amp;#34;This is an info message&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>logger&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>warning(&lt;span style="color:#a5d6ff">&amp;#34;This is a warning&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>logger&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>error(&lt;span style="color:#a5d6ff">&amp;#34;This is an error&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="quick-reference">Quick Reference&lt;/h2>
&lt;h3 id="built-in-functions">Built-in Functions&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>len(obj) &lt;span style="color:#8b949e;font-style:italic"># Length&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>type(obj) &lt;span style="color:#8b949e;font-style:italic"># Type&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>isinstance(obj, type) &lt;span style="color:#8b949e;font-style:italic"># Type checking&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>str(obj) &lt;span style="color:#8b949e;font-style:italic"># String conversion&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>int(obj) &lt;span style="color:#8b949e;font-style:italic"># Integer conversion&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>float(obj) &lt;span style="color:#8b949e;font-style:italic"># Float conversion&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>list(obj) &lt;span style="color:#8b949e;font-style:italic"># List conversion&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>dict(obj) &lt;span style="color:#8b949e;font-style:italic"># Dictionary conversion&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>max(iterable) &lt;span style="color:#8b949e;font-style:italic"># Maximum value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>min(iterable) &lt;span style="color:#8b949e;font-style:italic"># Minimum value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sum(iterable) &lt;span style="color:#8b949e;font-style:italic"># Sum of values&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sorted(iterable) &lt;span style="color:#8b949e;font-style:italic"># Sorted list&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>reversed(iterable) &lt;span style="color:#8b949e;font-style:italic"># Reversed iterator&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>enumerate(iterable) &lt;span style="color:#8b949e;font-style:italic"># Index-value pairs&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>zip(iter1, iter2) &lt;span style="color:#8b949e;font-style:italic"># Parallel iteration&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="string-methods">String Methods&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>s&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>lower() &lt;span style="color:#8b949e;font-style:italic"># Lowercase&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>upper() &lt;span style="color:#8b949e;font-style:italic"># Uppercase&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>strip() &lt;span style="color:#8b949e;font-style:italic"># Remove whitespace&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>split(sep) &lt;span style="color:#8b949e;font-style:italic"># Split string&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>join(iterable) &lt;span style="color:#8b949e;font-style:italic"># Join strings&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>replace(old, new) &lt;span style="color:#8b949e;font-style:italic"># Replace substring&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>startswith(prefix) &lt;span style="color:#8b949e;font-style:italic"># Check prefix&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>endswith(suffix) &lt;span style="color:#8b949e;font-style:italic"># Check suffix&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>find(substring) &lt;span style="color:#8b949e;font-style:italic"># Find position&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>isdigit() &lt;span style="color:#8b949e;font-style:italic"># Check if digits&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>s&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>isalpha() &lt;span style="color:#8b949e;font-style:italic"># Check if alphabetic&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="list-methods">List Methods&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:2;-o-tab-size:2;tab-size:2;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>l&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>append(item) &lt;span style="color:#8b949e;font-style:italic"># Add to end&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>l&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>insert(i, item) &lt;span style="color:#8b949e;font-style:italic"># Insert at index&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>l&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>remove(item) &lt;span style="color:#8b949e;font-style:italic"># Remove first occurrence&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>l&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>pop(i) &lt;span style="color:#8b949e;font-style:italic"># Remove and return&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>l&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>sort() &lt;span style="color:#8b949e;font-style:italic"># Sort in place&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>l&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>reverse() &lt;span style="color:#8b949e;font-style:italic"># Reverse in place&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>l&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>extend(iterable) &lt;span style="color:#8b949e;font-style:italic"># Add multiple items&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>l&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>index(item) &lt;span style="color:#8b949e;font-style:italic"># Find index&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>l&lt;span style="color:#ff7b72;font-weight:bold">.&lt;/span>count(item) &lt;span style="color:#8b949e;font-style:italic"># Count occurrences&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="see-also">See Also&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://docs.python.org/3/">Python Documentation&lt;/a> - Official documentation&lt;/li>
&lt;li>&lt;a href="https://www.python.org/dev/peps/pep-0008/">PEP 8&lt;/a> - Style guide&lt;/li>
&lt;li>&lt;a href="https://realpython.com/">Real Python&lt;/a> - Tutorials and articles&lt;/li>
&lt;li>&lt;a href="https://pypi.org/">Python Package Index (PyPI)&lt;/a> - Package repository&lt;/li>
&lt;li>&lt;code>python -m pdb script.py&lt;/code> - Python debugger&lt;/li>
&lt;li>&lt;code>python -m profile script.py&lt;/code> - Performance profiler&lt;/li>
&lt;/ul></description></item></channel></rss>