Menu
CoddyTech

Mảng định kiểu

Thuộc phần Kiến thức nền tảng trong hành trình GDScript của Coddy. Bài học 68 trên 92.

Một mảng thông thường chấp nhận các giá trị thuộc mọi kiểu dữ liệu. Mảng có kiểu dữ liệu chỉ chấp nhận một kiểu dữ liệu, được viết trong dấu ngoặc vuông sau Array:

var scores: Array[int] = [90, 85, 77]
var players: Array[String] = ["Ana", "Ben"]
var bonuses: Array[int] = []

GDScript kiểm tra mọi giá trị. Giá trị sai kiểu dữ liệu trong dấu ngoặc sẽ được báo lỗi trước khi chương trình chạy:

var scores: Array[int] = [90, "high"]  # Lỗi: "high" không phải là int

Thêm một giá trị không đúng kiểu dữ liệu khi chương trình đang chạy cũng gây ra lỗi, và giá trị đó không được thêm vào:

var scores: Array[int] = [90, 85]
var bonus = "ten"
scores.append(bonus)  # Lỗi, scores vẫn là [90, 85]

Khả năng suy luận kiểu dữ liệu với := không tạo ra một mảng có kiểu: var scores := [90, 85] là một Array thông thường. Hãy viết Array[int] để tạo mảng có kiểu.

Vì mảng có kiểu biết kiểu dữ liệu của phần tử, var best := scores[0] suy ra kiểu int. Với mảng thông thường, dòng lệnh tương tự sẽ gây lỗi vì các phần tử của mảng có thể thuộc bất kỳ kiểu dữ liệu nào.

Mảng có kiểu có cùng chỉ số và phương thức như mảng thông thường, và print(scores) hiển thị chúng theo cùng cách: [90, 85].

challenge icon

Thử thách

Dễ

Chương trình đọc một số lượng từ đầu vào, sau đó đọc số điểm tương ứng, mỗi điểm trên một dòng.

  1. Khai báo scores là một mảng có kiểu dữ liệu số nguyên rỗng
  2. Đọc từng điểm, chuyển đổi bằng int() rồi thêm vào scores
  3. In ra scores, sau đó in Best: kèm theo điểm cao nhất

Với đầu vào bên dưới, đầu ra là:

3
70
95
88
[70, 95, 88]
Best: 95

Tự làm thử

extends Node

func _ready():
	var count := int(OS.read_string_from_stdin())
	# 1. Khai báo scores, một mảng (array) rỗng có kiểu phần tử là int
	# 2. Đọc count điểm số rồi thêm từng điểm vào scores
	# 3. In ra scores, sau đó là "Best: " và điểm số cao nhất
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Trình biên dịch GDScript online