Introduce
In this article, I will rewrite all the knowledge in the process of learning. Get’s go!!!
Contents
Declare variable
We have 3 ways to declare variables:
1 2 3 4 5 6 7 8 9 | <span class="token number">1</span> . var <name> <type> => var one int; one = <span class="token number">1</span> <span class="token number">2</span> . var <name> = <value> => var one = <span class="token number">1</span> <span class="token number">3</span> . <name> <span class="token operator">:</span> = <value> => one <span class="token operator">:</span> = <span class="token number">1</span> |
Note: The declaration method 2 and 3 should be used in a function, and the declaration method 1 is often used to declare a global variable for the entire code.
Variables declared but have no value are:
1 2 3 4 | <span class="token number">0</span> for numeric types <span class="token punctuation">,</span> <span class="token boolean">false</span> for the boolean type <span class="token punctuation">,</span> and <span class="token string">""</span> (the empty string) for strings. |
Use if/else . conditions
1 2 3 4 5 6 7 8 | <span class="token keyword">if</span> <span class="token operator"><</span> condition expression <span class="token operator">></span> <span class="token punctuation">{</span> <span class="token comment">// implement code</span> <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token keyword">if</span> <span class="token operator"><</span> condition expression <span class="token operator">></span> <span class="token punctuation">{</span> <span class="token comment">// implement code</span> <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span> <span class="token comment">// implement code</span> <span class="token punctuation">}</span> |
If shortened:
1 2 3 4 5 6 7 | <span class="token keyword">func</span> <span class="token function">pow</span> <span class="token punctuation">(</span> x <span class="token punctuation">,</span> n <span class="token punctuation">,</span> lim <span class="token builtin">float64</span> <span class="token punctuation">)</span> <span class="token builtin">float64</span> <span class="token punctuation">{</span> <span class="token keyword">if</span> v <span class="token operator">:=</span> math <span class="token punctuation">.</span> <span class="token function">Pow</span> <span class="token punctuation">(</span> x <span class="token punctuation">,</span> n <span class="token punctuation">)</span> <span class="token punctuation">;</span> v <span class="token operator"><</span> lim <span class="token punctuation">{</span> <span class="token keyword">return</span> v <span class="token punctuation">}</span> <span class="token keyword">return</span> lim <span class="token punctuation">}</span> |
Types of data
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | bool string int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr byte <span class="token comment">// alias for uint8</span> rune <span class="token comment">// alias for int32</span> <span class="token comment">// represents a Unicode code point</span> float32 float64 complex64 complex128 |
Data type conversion
The expression T(v) converts the value v to type T.
1 2 3 4 | var i int = 42 var f float64 = float64(i) var u uint = uint(f) |
or
1 2 3 4 | i := 42 f := float64(i) u := uint(f) |
If we declare :=
like this, the data type will be based on the value of that variable:
1 2 3 4 | i := 42 // int f := 3.142 // float64 g := 0.867 + 0.5i // complex128 |
Function declaration
A function can take zero or more arguments.
Function Returns 1 value:
1 2 3 4 | func add(x int, y int) int { return x + y } |
The function returns multiple values:
1 2 3 4 | func add(x , y int) (int, int) { return x, y } |
For . loop
For:
1 2 3 4 5 | sum <span class="token operator">:=</span> <span class="token number">0</span> <span class="token keyword">for</span> i <span class="token operator">:=</span> <span class="token number">0</span> <span class="token punctuation">;</span> i <span class="token operator"><</span> <span class="token number">10</span> <span class="token punctuation">;</span> i <span class="token operator">++</span> <span class="token punctuation">{</span> sum <span class="token operator">+=</span> i <span class="token punctuation">}</span> |
Tiếp tục:
1 2 3 4 5 | sum <span class="token operator">:=</span> <span class="token number">1</span> <span class="token keyword">for</span> <span class="token punctuation">;</span> sum <span class="token operator"><</span> <span class="token number">1000</span> <span class="token punctuation">;</span> <span class="token punctuation">{</span> sum <span class="token operator">+=</span> sum <span class="token punctuation">}</span> |
While:
1 2 3 4 5 | sum <span class="token operator">:=</span> <span class="token number">1</span> <span class="token keyword">for</span> sum <span class="token operator"><</span> <span class="token number">1000</span> <span class="token punctuation">{</span> sum <span class="token operator">+=</span> sum <span class="token punctuation">}</span> |
If you omit the loop condition, it will loop forever.
1 2 3 | <span class="token keyword">for</span> <span class="token punctuation">{</span> <span class="token punctuation">}</span> |
Switch
Conditional:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <span class="token keyword">import</span> <span class="token punctuation">(</span> <span class="token string">"fmt"</span> <span class="token string">"runtime"</span> <span class="token punctuation">)</span> <span class="token keyword">switch</span> os <span class="token operator">:=</span> runtime <span class="token punctuation">.</span> GOOS <span class="token punctuation">;</span> os <span class="token punctuation">{</span> <span class="token keyword">case</span> <span class="token string">"darwin"</span> <span class="token punctuation">:</span> fmt <span class="token punctuation">.</span> <span class="token function">Println</span> <span class="token punctuation">(</span> <span class="token string">"OS X."</span> <span class="token punctuation">)</span> <span class="token keyword">case</span> <span class="token string">"linux"</span> <span class="token punctuation">:</span> fmt <span class="token punctuation">.</span> <span class="token function">Println</span> <span class="token punctuation">(</span> <span class="token string">"Linux."</span> <span class="token punctuation">)</span> <span class="token keyword">default</span> <span class="token punctuation">:</span> <span class="token comment">// freebsd, openbsd,</span> <span class="token comment">// plan9, windows...</span> fmt <span class="token punctuation">.</span> <span class="token function">Printf</span> <span class="token punctuation">(</span> <span class="token string">"%s.n"</span> <span class="token punctuation">,</span> os <span class="token punctuation">)</span> <span class="token punctuation">}</span> |
Unconditional:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <span class="token keyword">import</span> <span class="token punctuation">(</span> <span class="token string">"fmt"</span> <span class="token string">"time"</span> <span class="token punctuation">)</span> t <span class="token operator">:=</span> time <span class="token punctuation">.</span> <span class="token function">Now</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token keyword">switch</span> <span class="token punctuation">{</span> <span class="token keyword">case</span> t <span class="token punctuation">.</span> <span class="token function">Hour</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token operator"><</span> <span class="token number">12</span> <span class="token punctuation">:</span> fmt <span class="token punctuation">.</span> <span class="token function">Println</span> <span class="token punctuation">(</span> <span class="token string">"Good morning!"</span> <span class="token punctuation">)</span> <span class="token keyword">case</span> t <span class="token punctuation">.</span> <span class="token function">Hour</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token operator"><</span> <span class="token number">17</span> <span class="token punctuation">:</span> fmt <span class="token punctuation">.</span> <span class="token function">Println</span> <span class="token punctuation">(</span> <span class="token string">"Good afternoon."</span> <span class="token punctuation">)</span> <span class="token keyword">default</span> <span class="token punctuation">:</span> fmt <span class="token punctuation">.</span> <span class="token function">Println</span> <span class="token punctuation">(</span> <span class="token string">"Good evening."</span> <span class="token punctuation">)</span> <span class="token punctuation">}</span> |
Defer
Defer is a Go feature that allows you to attach a function to execute after the main function completes.
1 2 3 4 5 6 7 8 | <span class="token keyword">import</span> <span class="token string">"fmt"</span> <span class="token keyword">func</span> <span class="token function">main</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">defer</span> fmt <span class="token punctuation">.</span> <span class="token function">Println</span> <span class="token punctuation">(</span> <span class="token string">"world"</span> <span class="token punctuation">)</span> fmt <span class="token punctuation">.</span> <span class="token function">Println</span> <span class="token punctuation">(</span> <span class="token string">"hello"</span> <span class="token punctuation">)</span> <span class="token punctuation">}</span> |
Stacking defers : are functions called but not yet executed and pushed onto the stack. When the main function completes, functions that haven’t executed it will be run in LIFO (Last-in-First-out) order.
1 2 3 4 5 6 7 8 9 10 11 12 | <span class="token keyword">import</span> <span class="token string">"fmt"</span> <span class="token keyword">func</span> <span class="token function">main</span> <span class="token punctuation">(</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> fmt <span class="token punctuation">.</span> <span class="token function">Println</span> <span class="token punctuation">(</span> <span class="token string">"counting"</span> <span class="token punctuation">)</span> <span class="token keyword">for</span> i <span class="token operator">:=</span> <span class="token number">0</span> <span class="token punctuation">;</span> i <span class="token operator"><</span> <span class="token number">10</span> <span class="token punctuation">;</span> i <span class="token operator">++</span> <span class="token punctuation">{</span> <span class="token keyword">defer</span> fmt <span class="token punctuation">.</span> <span class="token function">Println</span> <span class="token punctuation">(</span> i <span class="token punctuation">)</span> <span class="token punctuation">}</span> fmt <span class="token punctuation">.</span> <span class="token function">Println</span> <span class="token punctuation">(</span> <span class="token string">"done"</span> <span class="token punctuation">)</span> <span class="token punctuation">}</span> |
summary
So after 1 day I learned:
- how to declare variable
- if/else statement
- data types
- function declaration.
- For . loop
- Switch
- Defer, Stacking Defer
Thank you for following my post. Have a nice day. Tks