[Go Lang - P3] lập trình golang căn bản - Array và Slide trong golang
Bài đăng này đã không được cập nhật trong 5 năm
Xin chào các bạn, ở bài biết trước mình đã giới thiệu về các kiểu dữ liệu trong golang, bài này chúng ta cũng nhau tìm hiều về Array và Slide trong golang nhé
Arrays trong golang
Mảng là tập hợp của các phần tử có cùng một loại. Ví dụ: tập hợp các số nguyên 3, 5, 2, 8 tạo thành một mảng. nó có kích thước cố định và các phần tử bên trong phải cùng loại dữ liệu.
Mảng 1 chiều
func main() {
var x [5]int // khai báo mảng kiểu int 5 phần tử
fmt.Println(x)
var a [2]string // khai báo mảng kiểu string 2 phần tử
a[0] = "Hello"
a[1] = "World"
fmt.Println(a)
var z [3]complex128 // khai báo mảng kiểu complex128 3 phần tử
fmt.Println(z)
// Khởi tạo một mảng gồm 6 số kiểu int và gán luôn giá trị cho nó
number := [6]int{2, 3, 5, 7, 11, 13}
fmt.Println(number)
// khai báo mảng nhưng không ghi rõ kích thước,
// trình biên dịch sẽ tự hiểu dựa vào số phần tử đã khai báo
ar := [...]int{12, 78, 50}
fmt.Println(ar)
}
ví dụ: tính tổng các phần tử trong mảng
package main
import "fmt"
func main() {
a := [4]float64{3.5, 7.2, 4.8, 9.5}
sum := float64(0)
for i := 0; i < len(a); i++ {
sum = sum + a[i]
}
fmt.Printf("Sum of all the elements in array %v = %f\n", a, sum)
}
Mảng 2 chiều
package main
import "fmt"
func main() {
a := [2][2]int{
{3, 5},
{7, 9},
}
fmt.Println(a)
b := [5][4]float64{
{1, 3},
{4.5, -3, 7.4, 2},
{6, 2, 11},
}
fmt.Println(b)
}
Slices trong golang
Slices không có bất kì dữ liệu nào. Chúng là các tham chiếu đến mảng hiện có, nó mô tả một phần (hoặc toàn bộ) Array. Nó có kích thước động nên thường được sử dụng nhiều hơn Array.
Slices có thể tạo ra từ một Array bằng cách lấy từ vị trí phần tử bắt đầu và kết thúc trong Array.
Ví dụ:
package main
import (
"fmt"
)
func main() {
number := [6]int{2, 4, 5, 7, 8, 10, 13}
// Khởi tạo Slice s bằng cách cắt từ phần tử ở vị trí 2 đến phần tử ở vị trí 5 của Array number
var s []int = number[2:5]
// In ra giá trị của Slice s
fmt.Println(s) // Giá trị của s là [5, 7, 8]
}
- sắp xếp Slices theo thuật toán bubblesoft
package main
import (
"fmt"
"sort"
)
func main(){
var slide = []int{}
fmt.Print("Enter n: ")
var n int
fmt.Scanf("%d",&n)
var input int
for i := 0;i < n ;i++{
fmt.Printf("slide[%d] = ", i)
fmt.Scanf("%d", &input)
slide = append(slide, input)
}
bubbleSoft(slide)
fmt.Println(slide)
}
func bubbleSoft(slide sort.IntSlice){
for j := 0; j < len(slide)-1; j++ {
for i := len(slide)-2; i >= j; i-- {
if slide[i] < slide[i+1] {
tg := slide[i]
slide[i] = slide[i+1]
slide[i+1] = tg
}
}
}
}
}
kết bài
Bài này mình đã giới thiệu những kiến thức cơ bản về Array và Slide trong golang, cùng theo dõi phần tiếp theo nhé.
All rights reserved