1. What is Golang
Go, also known as Golang is an open source programming language (statically type) compiled by Google.
The main purpose of Golang is to support the development of high availability web apps and to make it faster and easier to expand.
Golang can be applied in many fields such as Web Server development, mobile application development or in microservice systems or ERP.
Golang has advantages over other languages such as:
- Golang is a compiled language, the source code will be compiled into binary code, which is missing in Javascript – NodeJs.
- With Golang, we will not need to install dependencies from the server because Go has linked all the modules and dependencies into a binary file.
- Golang uses separate goroutines to save memory and improve application performance.
2. Install
Golang supports all three platforms: Mac, Windows, Linux. You can download the corresponding installer here
Windows
On Windows, after downloading the Go for Windows installation file to your computer, simply double-click the file and proceed to install Go as instructed. By default, the computer will install Go in the c:Go
folder, also known as the $GO_ROOT
. In addition, the installer will automatically add the c:Gobin
to the environment variable on the machine. This directory is also known as the $GO_PATH
directory
MacOS
Similar to Windows, you can also install Golang using the installation file with the .pkg extension for computers running Mac OSX. Golang will be installed at /usr/local/go
and automatically add the directory /usr/local/go
to the PATH
environment PATH
Linux
Download the installation file with .tar extension and extract it in /usr/local
. Add the /usr/local/go
to the PATH environment variable
1 2 | $ export PATH=$PATH:/usr/local/go |
3. The first Hello World program
After installation is complete, we will embark on code program Hello World “divine”.
1 2 3 4 5 6 7 8 9 | # helloworld <span class="token punctuation">.</span> <span class="token keyword">go</span> <span class="token keyword">package</span> main <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">"Hello World"</span> <span class="token punctuation">)</span> <span class="token punctuation">}</span> |
To run the program we use the command
1 2 | $ <span class="token keyword">go</span> run helloworld <span class="token punctuation">.</span> <span class="token keyword">go</span> |
If you want to build before running, use the command
1 2 3 | $ <span class="token keyword">go</span> build $ <span class="token punctuation">.</span> <span class="token operator">/</span> helloworld |
4. Variable
Declaring and using variables is extremely important when learning a new language. With Golang, variables can be declared in various ways
Declare a variable
Syntax: var name type
1 2 3 4 5 6 7 8 9 10 | <span class="token keyword">package</span> main <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">var</span> name <span class="token builtin">string</span> name <span class="token operator">=</span> <span class="token string">"Nguyen Tuan Vu"</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> name <span class="token punctuation">)</span> <span class="token punctuation">}</span> |
Sometimes for brevity we can use fast declarations
1 2 3 4 | name <span class="token operator">:=</span> <span class="token string">"Nguyen Tuan Vu"</span> <span class="token comment">// Hoac </span> <span class="token keyword">var</span> name <span class="token builtin">string</span> <span class="token operator">=</span> <span class="token string">"Nguyen Tuan Vu"</span> |
Or how to declare the data type inference itself
1 2 | <span class="token keyword">var</span> name <span class="token operator">=</span> <span class="token string">"Nguyen Tuan Vu"</span> |
Declare multiple variables
We can also declare multiple variables on a single statement.
1 2 | name <span class="token punctuation">,</span> age <span class="token operator">:=</span> <span class="token string">"Nguyen Tuan Vu"</span> <span class="token punctuation">,</span> <span class="token number">21</span> |
5. Control command
The syntax of the control command in golang is quite similar to other languages
If …. else
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <span class="token keyword">package</span> main <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">var</span> vibloPost <span class="token builtin">int</span> <span class="token operator">=</span> <span class="token number">5</span> <span class="token keyword">if</span> vibloPost <span class="token operator">>=</span> <span class="token number">4</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">"Ban da vuot qua su kien May Fest"</span> <span class="token punctuation">)</span> <span class="token punctuation">}</span> <span class="token keyword">else</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">"Ban chua vuot qua su kien May Fest"</span> <span class="token punctuation">)</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> |
For
1 2 3 4 5 6 7 8 9 | <span class="token keyword">package</span> main <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">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> fmt <span class="token punctuation">.</span> <span class="token function">Printf</span> <span class="token punctuation">(</span> <span class="token string">"%d "</span> <span class="token punctuation">,</span> i <span class="token punctuation">)</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> |
or
1 2 3 4 5 6 7 8 9 10 11 | <span class="token keyword">package</span> main <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> i <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">10</span> <span class="token punctuation">{</span> fmt <span class="token punctuation">.</span> <span class="token function">Printf</span> <span class="token punctuation">(</span> <span class="token string">"%d "</span> <span class="token punctuation">,</span> i <span class="token punctuation">)</span> i <span class="token operator">=</span> i <span class="token operator">+</span> <span class="token number">1</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> |
Also we can use many variables in the for loop
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <span class="token keyword">package</span> main <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">for</span> i <span class="token punctuation">,</span> j <span class="token operator">:=</span> <span class="token number">0</span> <span class="token punctuation">,</span> <span class="token number">5</span> <span class="token punctuation">;</span> i <span class="token operator"><=</span> <span class="token number">5</span> <span class="token operator">&&</span> j <span class="token operator">>=</span> <span class="token number">0</span> <span class="token punctuation">;</span> i <span class="token punctuation">,</span> j <span class="token operator">=</span> i <span class="token operator">+</span> <span class="token number">1</span> <span class="token punctuation">,</span> j <span class="token operator">-</span> <span class="token number">1</span> <span class="token punctuation">{</span> fmt <span class="token punctuation">.</span> <span class="token function">Printf</span> <span class="token punctuation">(</span> <span class="token string">"%d %dn"</span> <span class="token punctuation">,</span> i <span class="token punctuation">,</span> j <span class="token punctuation">)</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token comment">/* Ket qua 0 5 1 4 2 3 3 2 4 1 5 0 */</span> |
6. Array, Slice
Array
Arrays are collections of elements of the same data type. There are many different ways to declare an array
1 2 3 4 5 6 7 8 9 10 11 12 | <span class="token comment">// khai bao don gian nhat</span> <span class="token keyword">var</span> a <span class="token punctuation">[</span> <span class="token number">3</span> <span class="token punctuation">]</span> <span class="token builtin">int</span> a <span class="token punctuation">[</span> <span class="token number">0</span> <span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token number">1</span> a <span class="token punctuation">[</span> <span class="token number">1</span> <span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token number">2</span> a <span class="token punctuation">[</span> <span class="token number">2</span> <span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token number">3</span> <span class="token comment">// khai bao short hand</span> a <span class="token operator">:=</span> <span class="token punctuation">[</span> <span class="token number">3</span> <span class="token punctuation">]</span> <span class="token builtin">int</span> <span class="token punctuation">{</span> <span class="token number">1</span> <span class="token punctuation">,</span> <span class="token number">2</span> <span class="token punctuation">,</span> <span class="token number">3</span> <span class="token punctuation">}</span> <span class="token comment">// Bo qua chieu dai cua mang</span> a <span class="token operator">:=</span> <span class="token punctuation">[</span> <span class="token operator">...</span> <span class="token punctuation">]</span> <span class="token builtin">int</span> <span class="token punctuation">{</span> <span class="token number">1</span> <span class="token punctuation">,</span> <span class="token number">2</span> <span class="token punctuation">,</span> <span class="token number">3</span> <span class="token punctuation">}</span> |
Array array using range
1 2 3 4 5 6 7 8 9 10 | <span class="token keyword">package</span> main <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> a <span class="token operator">:=</span> <span class="token punctuation">[</span> <span class="token number">3</span> <span class="token punctuation">]</span> <span class="token builtin">int</span> <span class="token punctuation">{</span> <span class="token number">1</span> <span class="token punctuation">,</span> <span class="token number">2</span> <span class="token punctuation">,</span> <span class="token number">3</span> <span class="token punctuation">}</span> <span class="token keyword">for</span> i <span class="token punctuation">,</span> v <span class="token operator">:=</span> <span class="token keyword">range</span> a <span class="token punctuation">{</span> fmt <span class="token punctuation">.</span> <span class="token function">Printf</span> <span class="token punctuation">(</span> <span class="token string">"Phan tu thu %d la: %dn"</span> <span class="token punctuation">,</span> i <span class="token punctuation">,</span> v <span class="token punctuation">)</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> |
Note when using arrays
- Arrays are value types : Arrays in Go are non-referenced value types like other languages. So we can make a copy of the original by assigning a new array with the original one. Any changes to the new array will not affect the original array
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <span class="token keyword">package</span> main <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> a <span class="token operator">:=</span> <span class="token punctuation">[</span> <span class="token number">3</span> <span class="token punctuation">]</span> <span class="token builtin">int</span> <span class="token punctuation">{</span> <span class="token number">1</span> <span class="token punctuation">,</span> <span class="token number">2</span> <span class="token punctuation">,</span> <span class="token number">3</span> <span class="token punctuation">}</span> b <span class="token operator">:=</span> a b <span class="token punctuation">[</span> <span class="token number">0</span> <span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token number">4</span> fmt <span class="token punctuation">.</span> <span class="token function">Println</span> <span class="token punctuation">(</span> <span class="token string">"Mang a "</span> <span class="token punctuation">,</span> a <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">"Mang b "</span> <span class="token punctuation">,</span> b <span class="token punctuation">)</span> <span class="token punctuation">}</span> <span class="token comment">/* Mang a [1 2 3] Mang b [4 2 3] */</span> |
- The size of the array is part of the value type : [3] int and [5] int are different types. Therefore the array cannot be resized.
1 2 3 4 5 6 7 8 | <span class="token keyword">package</span> main <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> a <span class="token operator">:=</span> <span class="token punctuation">[</span> <span class="token number">3</span> <span class="token punctuation">]</span> <span class="token builtin">int</span> <span class="token punctuation">{</span> <span class="token number">1</span> <span class="token punctuation">,</span> <span class="token number">2</span> <span class="token punctuation">,</span> <span class="token number">3</span> <span class="token punctuation">}</span> <span class="token keyword">var</span> b <span class="token punctuation">[</span> <span class="token number">5</span> <span class="token punctuation">]</span> <span class="token builtin">int</span> b <span class="token operator">=</span> a <span class="token comment">// Loi khong su dung kieu [3]int cho kieu [5]int</span> <span class="token punctuation">}</span> |
Slice
As mentioned above, the array has the disadvantage of being unable to resize and transfer values. Slice are born to solve these limitations. Slices are references to existing arrays. Slice is extremely flexible.
First, let’s learn how to create a slice
1 2 3 4 5 6 7 8 9 10 11 12 | <span class="token keyword">package</span> main <span class="token keyword">import</span> <span class="token punctuation">(</span> <span class="token string">"fmt"</span> <span class="token punctuation">)</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> a <span class="token operator">:=</span> <span class="token punctuation">[</span> <span class="token number">5</span> <span class="token punctuation">]</span> <span class="token builtin">int</span> <span class="token punctuation">{</span> <span class="token number">1</span> <span class="token punctuation">,</span> <span class="token number">2</span> <span class="token punctuation">,</span> <span class="token number">3</span> <span class="token punctuation">,</span> <span class="token number">4</span> <span class="token punctuation">,</span> <span class="token number">5</span> <span class="token punctuation">}</span> <span class="token keyword">var</span> b <span class="token punctuation">[</span> <span class="token punctuation">]</span> <span class="token builtin">int</span> <span class="token operator">=</span> a <span class="token punctuation">[</span> <span class="token number">1</span> <span class="token punctuation">:</span> <span class="token number">4</span> <span class="token punctuation">]</span> <span class="token comment">// [2, 3, 4]</span> fmt <span class="token punctuation">.</span> <span class="token function">Println</span> <span class="token punctuation">(</span> b <span class="token punctuation">)</span> <span class="token punctuation">}</span> |
Modify a slice
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <span class="token keyword">package</span> main <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> arr <span class="token operator">:=</span> <span class="token punctuation">[</span> <span class="token operator">...</span> <span class="token punctuation">]</span> <span class="token builtin">int</span> <span class="token punctuation">{</span> <span class="token number">1</span> <span class="token punctuation">,</span> <span class="token number">2</span> <span class="token punctuation">,</span> <span class="token number">3</span> <span class="token punctuation">,</span> <span class="token number">4</span> <span class="token punctuation">,</span> <span class="token number">5</span> <span class="token punctuation">}</span> slice <span class="token operator">:=</span> arr <span class="token punctuation">[</span> <span class="token number">1</span> <span class="token punctuation">:</span> <span class="token number">4</span> <span class="token punctuation">]</span> <span class="token comment">// [2, 3, 4]</span> <span class="token keyword">for</span> i <span class="token punctuation">,</span> <span class="token boolean">_</span> <span class="token operator">:=</span> <span class="token keyword">range</span> slice <span class="token punctuation">{</span> slice <span class="token punctuation">[</span> i <span class="token punctuation">]</span> <span class="token operator">++</span> <span class="token punctuation">}</span> fmt <span class="token punctuation">.</span> <span class="token function">Println</span> <span class="token punctuation">(</span> slice <span class="token punctuation">)</span> <span class="token comment">// [3, 4, 5]</span> fmt <span class="token punctuation">.</span> <span class="token function">Println</span> <span class="token punctuation">(</span> arr <span class="token punctuation">)</span> <span class="token comment">// [1, 3, 4, 5, 5]</span> <span class="token punctuation">}</span> |
Next we need to distinguish the length and capacity of a slice.
- The length of a slice is the number of elements in the slice. We can call the length of the slice equal:
len(slice)
- A slice’s capacity is the number of basic elements starting from the item the slice was created
1 2 3 4 5 6 7 8 9 10 11 12 13 | <span class="token keyword">package</span> main <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> arr <span class="token operator">:=</span> <span class="token punctuation">[</span> <span class="token operator">...</span> <span class="token punctuation">]</span> <span class="token builtin">int</span> <span class="token punctuation">{</span> <span class="token number">1</span> <span class="token punctuation">,</span> <span class="token number">2</span> <span class="token punctuation">,</span> <span class="token number">3</span> <span class="token punctuation">,</span> <span class="token number">4</span> <span class="token punctuation">,</span> <span class="token number">5</span> <span class="token punctuation">}</span> slice <span class="token operator">:=</span> arr <span class="token punctuation">[</span> <span class="token number">1</span> <span class="token punctuation">:</span> <span class="token number">4</span> <span class="token punctuation">]</span> <span class="token comment">// [2, 3, 4]</span> fmt <span class="token punctuation">.</span> <span class="token function">Println</span> <span class="token punctuation">(</span> <span class="token string">"Do dai cua slice la"</span> <span class="token punctuation">,</span> <span class="token function">len</span> <span class="token punctuation">(</span> slice <span class="token punctuation">)</span> <span class="token punctuation">)</span> <span class="token comment">// 3 vi slice duoc tao ra tu index 1, 2, 3 cua mang arr </span> fmt <span class="token punctuation">.</span> <span class="token function">Println</span> <span class="token punctuation">(</span> <span class="token string">"Suc chua cua slice la"</span> <span class="token punctuation">,</span> <span class="token function">cap</span> <span class="token punctuation">(</span> slice <span class="token punctuation">)</span> <span class="token punctuation">)</span> <span class="token comment">// 4 vi slice bat dau tu index 1, mang arr tu index 1 den cuoi mang co 4 phan tu </span> <span class="token punctuation">}</span> |
Change the length and capacity of the slice
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <span class="token keyword">package</span> main <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> arr <span class="token operator">:=</span> <span class="token punctuation">[</span> <span class="token operator">...</span> <span class="token punctuation">]</span> <span class="token builtin">int</span> <span class="token punctuation">{</span> <span class="token number">1</span> <span class="token punctuation">,</span> <span class="token number">2</span> <span class="token punctuation">,</span> <span class="token number">3</span> <span class="token punctuation">,</span> <span class="token number">4</span> <span class="token punctuation">,</span> <span class="token number">5</span> <span class="token punctuation">}</span> slice <span class="token operator">:=</span> arr <span class="token punctuation">[</span> <span class="token number">1</span> <span class="token punctuation">:</span> <span class="token number">4</span> <span class="token punctuation">]</span> <span class="token comment">// [2, 3, 4]</span> fmt <span class="token punctuation">.</span> <span class="token function">Println</span> <span class="token punctuation">(</span> <span class="token string">"slice co do dai la"</span> <span class="token punctuation">,</span> <span class="token function">len</span> <span class="token punctuation">(</span> slice <span class="token punctuation">)</span> <span class="token punctuation">,</span> <span class="token string">"va suc chua la"</span> <span class="token punctuation">,</span> <span class="token function">cap</span> <span class="token punctuation">(</span> slice <span class="token punctuation">)</span> <span class="token punctuation">)</span> <span class="token comment">// slice co do dai la 3 va suc chua la 4</span> slice <span class="token operator">=</span> arr <span class="token punctuation">[</span> <span class="token number">0</span> <span class="token punctuation">:</span> <span class="token function">cap</span> <span class="token punctuation">(</span> slice <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">"slice sau khi thay doi co do dai la"</span> <span class="token punctuation">,</span> <span class="token function">len</span> <span class="token punctuation">(</span> slice <span class="token punctuation">)</span> <span class="token punctuation">,</span> <span class="token string">"va suc chua la"</span> <span class="token punctuation">,</span> <span class="token function">cap</span> <span class="token punctuation">(</span> slice <span class="token punctuation">)</span> <span class="token punctuation">)</span> <span class="token comment">// slice sau khi thay doi co do dai la 4 va suc chua la 5</span> <span class="token punctuation">}</span> |
As is known, arrays are limited in length and cannot be increased. So how to add elements to arrays. To solve this problem we use slices and add new elements using the append function.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <span class="token keyword">package</span> main <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> slice <span class="token operator">:=</span> <span class="token punctuation">[</span> <span class="token punctuation">]</span> <span class="token builtin">int</span> <span class="token punctuation">{</span> <span class="token number">1</span> <span class="token punctuation">,</span> <span class="token number">2</span> <span class="token punctuation">,</span> <span class="token number">3</span> <span class="token punctuation">,</span> <span class="token number">4</span> <span class="token punctuation">,</span> <span class="token number">5</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">"slice co do dai la"</span> <span class="token punctuation">,</span> <span class="token function">len</span> <span class="token punctuation">(</span> slice <span class="token punctuation">)</span> <span class="token punctuation">,</span> <span class="token string">"va suc chua la"</span> <span class="token punctuation">,</span> <span class="token function">cap</span> <span class="token punctuation">(</span> slice <span class="token punctuation">)</span> <span class="token punctuation">)</span> <span class="token comment">// slice co do dai la 5 va suc chua la 5</span> slice <span class="token operator">=</span> <span class="token function">append</span> <span class="token punctuation">(</span> slice <span class="token punctuation">,</span> <span class="token number">6</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">"slice sau khi thay doi co do dai la"</span> <span class="token punctuation">,</span> <span class="token function">len</span> <span class="token punctuation">(</span> slice <span class="token punctuation">)</span> <span class="token punctuation">,</span> <span class="token string">"va suc chua la"</span> <span class="token punctuation">,</span> <span class="token function">cap</span> <span class="token punctuation">(</span> slice <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> slice <span class="token punctuation">)</span> <span class="token comment">// slice sau khi thay doi co do dai la 6 va suc chua la 10</span> <span class="token comment">// Suc chua cua slice da duoc tang len gap doi</span> <span class="token punctuation">}</span> |