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à intThê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].
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.
- Khai báo
scoreslà một mảng có kiểu dữ liệu số nguyên rỗng - Đọc từng điểm, chuyển đổi bằng
int()rồi thêm vàoscores - In ra
scores, sau đó inBest: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: 95Tự 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
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
4Toán tử phần 1
Toán tử số họcPhép chia lấy phần nguyênToán tử moduloPhép tính số học rút gọnÔn tập, phép tính đơn giảnToán tử so sánh7Nhập xuất cơ bản
Đầu raĐầu ra với biếnĐịnh dạng chuỗiĐầu vàoÉp kiểuÔn tập đến 120Ôn tập đúng hay sai10Hàm
Khai báo hàmĐối sốTrả vềKiểu trả vềÔn tập: hàm SigmaÔn tập: hàm kiểm tra hợp lệGiá trị mặc định16Theo dõi chi tiêu hằng ngày
Tổng quan dự ánThoát chương trình5Toán tử phần 2
Toán tử logic phần 1Toán tử logic phần 2Ôn tập: logic đơn giảnToán tử logic phần 3Toán tử ba ngôi8Máy tính chia hóa đơn
Lời chàoNhận đầu vào3Biến, phần 2
Khai báo kiểu dữ liệuSuy luận kiểu dữ liệuHằng sốÔn tập: khởi tạo biếnChuyển đổi kiểu dữ liệu9Vòng lặp
Vòng lặp forVòng lặp whileBreakContinueÔn tập: giai thừaHàm rangeVòng lặp lồng nhauÔn tập: đầu vào động12Mảng cơ bản
Khai báo mảngTruy cập phần tử trong mảngThay đổi mảngPhương thức mảngÔn tập: mảng tíchÔn tập: mảng đảo ngượcMảng định kiểuTự luyện tập: Trình biên dịch GDScript online