Các bài viết liên quan:
FILE I/O
Các đối tượng os.file được sử dụng cho các thao tác trên tệp. Đối tượng os.File còn được gọi là filehandle.
Chức năng mở trong gói hệ điều hành được sử dụng để mở tệp trong Go. ReadFile () trong gói io / ioutil được sử dụng để đọc tệp. Phương thức này trả về mảng byte [] các byte đã đọc. Phương thức file.WriteString có thể được sử dụng để ghi vào tệp.
Chúng tôi sử dụng defer file.close () ngay sau khi mở tệp để đảm bảo rằng tệp được đóng ngay sau khi hàm hoàn thành. Nếu tệp không tồn tại hoặc chương trình không có đủ quyền để mở tệp thì: –inputFile, inputError = os.Open (“input.dat”) gây ra lỗi.
Ví dụ:
Kết quả:
HTTP SERVER
Go cũng có thể được sử dụng để tạo các ứng dụng web. Net / http là một gói thư viện được sử dụng để xây dựng các ứng dụng web. Nó có hàm HandelFunc () định tuyến yêu cầu đến đến hàm tương ứng của nó. Hàm ListenAndServe được sử dụng để tạo một máy chủ tài nguyên lắng nghe cổng được cung cấp. Hàm someFunc có tham số kiểu http.ResponceWriter và http.Request. Nó có trách nhiệm thực hiện yêu cầu đến và sau khi xử lý phản hồi trở lại.
URL PARSING
Go hỗ trợ tốt cho việc phân tích cú pháp url. URL chứa một lược đồ, thông tin xác thực, máy chủ lưu trữ, cổng, đường dẫn, tham số truy vấn và phân đoạn truy vấn. chúng ta có thể phân tích cú pháp URL và suy ra tham số nào đang đến máy chủ và sau đó xử lý yêu cầu tương ứng.
Gói net / url có các chức năng cần thiết như Scheme, User, Host, Path, RawQuery, v.v.
Ví dụ 1 :
Kết quả:
Ví dụ 2:
Kết quả: Lên trình duyệt và nhập url: http://localhost:8080/company?name=huy&age=22
REST API
BASE64 ENCODING
chúng ta có thể mã hóa chuỗi và url trong Go. Go có Bộ mã hóa lấy mảng byte và chuyển đổi thành mã hóa chuỗi.
Bộ giải mã lấy giá trị được mã hóa và giấu nó vào chuỗi ban đầu.
Kết quả:
Random
Chúng ta có thể tạo số ngẫu nhiên bằng cách sử dụng đối tượng rand. Chúng ta nên cung cấp một số hạt giống đến đối tượng rand để số lượng được tạo ra khác nhau. Nếu chúng ta không cung cấp seeding thì trình biên dịch luôn tạo ra cùng một kết quả.
Ví dụ:
Kết quả:
Sort
Go có gói sắp xếp có thể được sử dụng để sắp xếp các kiểu dữ liệu cài sẵn cũng như do người dùng xác định.
Gói sắp xếp có các phương thức khác nhau để sắp xếp các kiểu dữ liệu khác nhau như Ints (), Float64s (), Strings (), v.v.
Chúng ta có thể kiểm tra xem các giá trị có được sắp xếp hay không bằng cách sử dụng các phương thức AreSorted () như Float64sAreSorted (), IntsAreSorted (), v.v.
Ví dụ:
Kết quả:
Chúng ta cũng có thể triển khai lược đồ sắp xếp của riêng mình, giả sử chúng ta muốn sắp xếp một mảng chuỗi theo độ dài của nó. Để làm được điều đó, chúng ta phải triển khai các phương thức Less, Len và Swap của riêng mình được xác định trong Giao diện sắp xếp.
Sau đó, chúng ta phải ép mảng của mình thành kiểu được triển khai.
Ví dụ:
Kết quả:
JSON
Go có hỗ trợ tích hợp cho mã hóa và giải mã JSON. nó cũng hỗ trợ các kiểu dữ liệu tùy chỉnh.
Hàm Marshal được sử dụng để chuyển đổi các kiểu dữ liệu go sang định dạng JSON.
Cú pháp của hàm Marshal là: func Marshal(v interface{}) ([]byte, error)
Marshal trả về mã hóa JSON của v.
Boolean được chuyển đổi thành boolean JSON. Dấu phẩy động, số nguyên và Số được chuyển đổi thành số JSON. Loại khóa của Maps phải là chuỗi, kiểu số nguyên hoặc mã hóa triển khai.TextMarshaler.
Việc giải mã JSON được thực hiện bằng chức năng Unmarshal.
Cú pháp của hàm unmarshal là: func Unmarshal(data []byte, v interface{}) error
Unmarshal giải mã giá trị được mã hóa JSON và lưu trữ kết quả trong giá trị được trỏ tới bởi v. Nếu v là nil hoặc không phải là một con trỏ, Unmarshal trả về một lỗi InvalidUnmarshalError.
Chúng tôi cũng có thể tùy chỉnh các trường được lưu trữ dưới khóa “json” trong thẻ của trường struct. chúng ta có thể có tên của trường, theo sau là danh sách các tùy chọn được phân tách bằng dấu phẩy.
Ví dụ 1:
Kết quả:
Ví dụ 2(người dùng định kiểu dữ liệu):
Kết quả: