Bài 03: Golang - Nhập Môn Cơ Bản -Primitive data types

Bài 03: Golang - Nhập Môn Cơ Bản -Primitive data types

  

Primitive data types

1: Boolean

Biến có kiểu dữ liệu là boolean thì chỉ chứa hai giá trị là true và false.
ví dụ
package mai
import (
    "fmt"
)
func main() {
    var a bool = true
    fmt.Printf("%v,%T",a,a)
}
Kết quả :    true,bool.
Ví dụ 2:
package main
import (
    "fmt"
)
func main() {
    var a bool
    a = 2 == 1
    fmt.Printf("%v,%T",a,a)
}
Kết quả :    false,bool.
Ví dụ 3 : thử tương tự với các toán tử !=,<=,<,>=,>,tương tự cho các ví dụ trên.

2: Numberics

Interger:

-    signed interger(int8,    int16,    int32,    int64). 
-    unsigned interger(uint8,    uint16,    uint32,   uint64)
package main
import (
    "fmt"
)
func main() {
    var a uint8 = 50
   
    fmt.Printf("%v,%T",a,a)
}
kết quả :
50,uint8

Float

-    có hai loại như float32 và float64

Complex

-    có hai loại như complex64 và complex128

3: Text

-    String
-    Byte => UTF-8
-    Rune => UTF-32

Constant enum

1: định nghĩa hằng số: 

-    là giá trị cố định và không thay đổi trong quá trình mà chương trình thực thi và sẽ được cấp phát khi biên dịch chương trình.

2: khai báo hằng số

package main

import (
"fmt"
)

func main() {
const i int16 = 50
fmt.Printf("%v.%T",i ,i )
}
kết quả:
50.int16

3: Đặc điểm hằng số

-    không thể gán lại giá trị cho nó
-    có thể tạo tạo một bóng cho nó.

4: Kiểu dữ liệu Enum

-    là tập hợp của nhiều hằng số lại với nhau

Array

package main
import (  
    "fmt"
)
func main() {  
    var a [3]int //int array with length 3
    a[0] = 12 // array index starts at 0
    a[1] = 78
    a[2] = 50
    fmt.Println(a)
Kết quả:     [12 78 50]
chúng ta tạo ra mảng bằng cách sử dụng short hand declaration
package main

import (  
"fmt"
)

func main() {  
a := [3]int{12, 78, 50} // short hand declaration to create array
fmt.Println(a)
}

Kết quả:     [12 78 50]

Mảng trong Go là các loại giá trị và không phải là loại tham chiếu. Điều này có nghĩa là khi chúng được gán cho một biến mới, một bản copy của bản gốc sẽ được gán cho biến mới này. Nếu thay đổi được thực hiện trên biến mới, nó sẽ không xét lại trong mảng ban đầu

package main

import "fmt"

func main() {  
    a := [...]string{"USA", "China", "India", "Germany", "France"}
    b := a // a copy of a is assigned to b
    b[0] = "Singapore"
    fmt.Println("a is ", a)
    fmt.Println("b is ", b)
}
Dòng 7 trong chương trình trên, một bản sao của a được gán cho b. Ở dòng 8, phần tử đầu tiên của b được đổi thành Singapore. Điều này sẽ không xét lại trong mảng ban đầu a. Chương trình vẫn sẽ output.
a is  [USA China India Germany France]
b is  [Singapore China India Germany France]

Tương tự, khi mảng được truyền cho các hàm như các tham số, chúng được truyền theo giá trị và mảng ban đầu không thay đổi.

package main

import "fmt"

func changeLocal(num [5]int) {  
    num[0] = 55
    fmt.Println("inside function ", num)

}
func main() {  
    num := [...]int{5, 6, 7, 8, 8}
    fmt.Println("before passing to function ", num)
    changeLocal(num) //num is passed by value
    fmt.Println("after passing to function ", num)
}
kết quả:Dòng 13 trong chương trình trên, mảng num được truyền giá trị tới function changeLocal, do đó nó sẽ không bị thay đổi khi gọi hàm. Chương trình sẽ output.

before passing to function  [5 6 7 8 8]
inside function  [55 6 7 8 8]
after passing to function  [5 6 7 8 8]

Độ dài của mảng

Độ dài của mảng được xác định bằng cách truyền mảng như một
tham số tới function len

package main

import "fmt"

func main() {  
    a := [...]float64{67.7, 89.8, 21, 78}
    fmt.Println("length of a is",len(a))}
kết quả:length of a is 4

Vòng lặp mảng sử dụng range (phạm vi)

Vòng lặp for có thể sử dụng để lặp qua các phần tử trong một mảng
package main

import "fmt"

func main() {  
    a := [...]float64{67.7, 89.8, 21, 78}
    for i := 0; i < len(a); i++ { //looping from 0 to the length of the array
        fmt.Printf("%d th element of a is %.2f\n", i, a[i])
    }
}
kết quả:
0 th element of a is 67.70
1 th element of a is 89.80
2 th element of a is 21.00
3 th element of a is 78.00
-    Go cung cấp một cách tốt hơn và ngắn gọn hơn để lặp qua một mảng bằng cách sử
dụng range của vòng lặp for. range trả về mục và cả giá trị tại mục đó.
-    Cùng viết lại đoạn code trên bằng cách sử dụng range.
-    Chúng ta cũng sẽ tìm thấy tổng của tất cả các phần tử của mảng.

package main

import "fmt"

func main() {  
    a := [...]float64{67.7, 89.8, 21, 78}
    sum := float64(0)
    for i, v := range a {//range returns both the index and value
        fmt.Printf("%d the element of a is %.2f\n", i, v)
        sum += v
    }
    fmt.Println("\nsum of all elements of a",sum)
}
kết quả:
0 the element of a is 67.70
1 the element of a is 89.80
2 the element of a is 21.00
3 the element of a is 78.00

sum of all elements of a 256.5
Trong trường hợp bạn muốn giữ lại giá trị và bỏ qua chỉ mục,bạn có thể thay thế
bằng _:
for _, v := range a { //ignores index  
}

Đăng nhận xét

0 Nhận xét

myadcash