Menu
CoddyTech

Giá trị mặc định

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 57 trên 92.

Tham số có thể có giá trị mặc định, được viết bằng = trong phần khai báo. Khi gọi hàm, bạn có thể bỏ qua đối số đó, và tham số sẽ nhận giá trị mặc định:

func greet(player, greeting = "Hello"):
	print(greeting, ", ", player, "!")
greet("Ana")
greet("Ana", "Welcome back")
Hello, Ana!
Welcome back, Ana!

Lần gọi đầu tiên truyền một đối số, nên greeting có giá trị "Hello". Lần gọi thứ hai truyền giá trị riêng, thay thế giá trị mặc định.

Một hàm có thể có nhiều giá trị mặc định, tham số có kiểu dữ liệu cũng có thể có giá trị mặc định:

func spawn(enemy: String, count: int = 1, speed: float = 2.5) -> void:
	print(count, " x ", enemy, " at speed ", speed)

spawn("bat") in ra 1 x bat at speed 2.5, còn spawn("bat", 3) in ra 3 x bat at speed 2.5. Các đối số vẫn lần lượt được gán cho các tham số, vì vậy bạn không thể truyền speed mà không truyền count.

Tham số có giá trị mặc định phải đứng sau các tham số không có giá trị mặc định. func greet(greeting = "Hello", player): gây ra lỗi: "Cannot have mandatory parameters after optional parameters".

challenge icon

Thử thách

Dễ

Chương trình đọc tên người chơi vào player.

  1. Bên dưới _ready(), khai báo hàm greet với hai tham số: player_name và greeting có giá trị mặc định là "Hello". Hàm này in ra lời chào, dấu phẩy và một khoảng trắng, tên người chơi, rồi !.
  2. Trong _ready(), gọi greet(player), rồi gọi greet(player, "Welcome back").

Với đầu vào Ana, đầu ra là:

Hello, Ana!
Welcome back, Ana!

Tự làm thử

extends Node

func _ready():
	var player := OS.read_string_from_stdin()
	# Gọi greet(player), rồi gọi greet(player, "Welcome back")

# Khai báo greet() bên dưới, dùng "Hello" làm lời chào mặc định
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