Golang từ cơ bản đến nâng cao ( Phần 1: Hello World và các khái niệm cơ bản)

Tram Ho

1. Golang là gì

Go hay còn được biết đến như Golang là một ngôn ngữ lập trình mã nguồn mở (open source), dạng biên dịch (compiled) kiểu tĩnh (statically type) được phát triển bởi Google.

Mục đích chính của Golang là hỗ trợ phát triển các web apps có tính sẵn sàng cao đồng thời giúp việc mở rộng nhanh và dễ dàng hơn.

Golang có thể ứng dụng trong nhiều lĩnh vực như trong phát triển Web Server, phát triển ứng dụng mobile hay trong các hệ thống microservice hay ERP.

Golang có các ưu điểm so với các ngôn ngữ khác như:

  • Golang là một ngôn ngữ biên dịch, mã nguồn sẽ được biên dịch sang mã nhị phân (binary), đây là phần còn thiếu trong Javascript – NodeJs.
  • Với Golang, chúng ta sẽ không cần cài đặt các dependencies từ server bởi vì Go đã liên kết tất cả các mô-đun cũng như các dependenciesthành một file nhị phân.
  • Golang sử dụng các goroutine riêng biệt giúp tiết kiệm bộ nhớ và nâng cao hiệu năng cho ứng dụng.

2. Cài đặt

Golang hỗ trợ cả cả ba nền tảng Mac, Windows, Linux. Bạn có thể tải bộ cài đặt tương ứng tại đây

Windows

Trên Windows sau khi tải tập tin cài đặt Go dành cho Windows về máy bạn chỉ cần click đúp vào tập tin và tiến hành cài đặt Go theo hướng dẫn.
Theo mặc định máy tính sẽ cài đặt Go trong thư mục c:Go, thư mục này còn được gọi là thư muc $GO_ROOT. Ngoài ra, trình cài đặt cũng sẽ tự động thêm thư mục c:Gobin vào biến môi trường trên máy. Thư mục này còn được gọi là thư mục $GO_PATH

MacOS

Tương tự như Windows thì bạn cũng có thể cài đặt Golang sử dụng tập tin cài đặt với phần mở rộng.pkg dành cho các máy tính chạy hệ điều hành Mac OSX. Golang sẽ được cài đặt tại /usr/local/go và tự động thêm thư mục /usr/local/go vào biến môi trường PATH

Linux

Tải file cài đặt có đuôi .tar và giải nén ở thư mục /usr/local.
Thêm thư mục /usr/local/go vào biến môi trường PATH

3. Chương trình Hello World đầu tiên

Sau khi đã cài đặt xong, chúng ta sẽ bắt tay vào code chương trình Hello World “thần thánh”.

Để chạy chương trình ta dùng câu lệnh

Nếu muốn build trước khi chạy ta sử dụng câu lệnh

4. Biến

Khai báo và sử dụng biến là vấn đề cực kỳ quan trọng khi tìm hiểu 1 ngôn ngữ mới. Với Golang, biến có thể được khai báo bằng nhiều cách khác nhau

Khai báo một biến

Cú pháp: var name type

Đôi khi để cho ngắn gọn ta có thể sử dụng cách khai báo nhanh

Hoặc cách khai báo tự suy luận kiểu dữ liệu

Khai báo nhiều biến

Ta cũng có thể khai báo nhiều biến trên 1 câu lệnh.

5. Lệnh điều khiển

Cú pháp của lệnh điều khiển trong golang khá giống với các ngôn ngữ khác

If …. else

For

hoặc

Ngoài ra chúng ta có thể sử dụng nhiều biến trong vòng lặp for

6. Mảng, Slice

Mảng

Mảng là tập hợp các phần tử có cùng một kiểu dữ liệu .
Có nhiều cách khác nhau để khai báo 1 mảng

Vòng lặp mảng sử dụng range

Lưu ý khi sử dụng mảng
  • Mảng là một kiểu giá trị: Mảng trong Go là các loại giá trị không phải tham chiếu như các ngôn ngữ khác. Do đó ta thể tạo ra 1 copy của bản gốc bằng cách gán một mảng mới bằng mảng gốc ban đầu. Mọi thay đổi của mảng mới sẽ không ảnh hưởng đến mảng gốc

  • Kích thước của mảng là 1 phần của kiểu giá trị: [3]int và [5]int là các kiểu khác nhau. Chính vì thế mảng không thể thay đổi kích cỡ.

Slice

Như đã nói ở trên mảng có nhược điểm là không thể thay đổi được kích cỡ và truyền giá trị. Slice được sinh ra để giải quyết các điểm hạn chế này. Slice là các tham chiếu đến mảng hiện có. Slice vô cùng linh hoạt.

Trước tiên, chúng ta cùng tìm hiểu cách tạo ra 1 slice

Sửa đổi một slice

Tiếp theo chúng ta cần phân biệt độ dài và sức chứa của 1 slice.

  • Độ dài của 1 slice là số lượng phần tử có trong slice đó. Ta có gọi độ dài của slice bằng : len(slice)
  • Sức chứa của 1 slice là số lươngj phần tử cơ bản bắt đầu từ mục mà slice đó được tạo ra

Thay đổi độ dài và sức chứa của slice

Như đã biết, mảng bị giới hạn về độ dài và không thể tăng lên được. Vậy làm thế nào để thêm phần tử vào mảng. Để giải quyết vấn đề này ta sử dụng slice và thêm phần tử mới vào bằng cách sử dụng hàm append.

Tham khảo

https://tour.golang.org/

https://golangbot.com/learn-golang-series/

https://www.tutorialspoint.com/go/index.htm

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo