默认值
本课属于 Coddy GDScript 学习旅程的“基础知识”单元。第 57 课,共 92 课。
参数可以有一个默认值,在声明中用 = 表示。调用时可以省略该参数,此时参数会使用默认值:
func greet(player, greeting = "Hello"):
print(greeting, ", ", player, "!")greet("Ana")
greet("Ana", "Welcome back")Hello, Ana!
Welcome back, Ana!第一次调用传入一个参数,所以 greeting 的值是 "Hello"。第二次调用传入自己的值,它会替换默认值。
函数可以有多个默认值,带类型的参数也可以:
func spawn(enemy: String, count: int = 1, speed: float = 2.5) -> void:
print(count, " x ", enemy, " at speed ", speed)spawn("bat") 会打印 1 x bat at speed 2.5,而 spawn("bat", 3) 会打印 3 x bat at speed 2.5。参数仍会按顺序填入参数,因此你不能在不传入 count 的情况下传入 speed。
带默认值的参数必须放在没有默认值的参数后面。func greet(greeting = "Hello", player):会报错:“可选参数后不能有必需参数”。
挑战
简单程序会将玩家姓名读入 player。
- 在
_ready()下方,声明一个名为greet的函数,它有两个参数:player_name,以及默认值为"Hello"的greeting。它会输出问候语、一个逗号和一个空格、姓名,以及!。 - 在
_ready()中,调用greet(player),然后调用greet(player, "Welcome back")。
输入 Ana 时,输出为:
Hello, Ana!
Welcome back, Ana!亲手试试
extends Node
func _ready():
var player := OS.read_string_from_stdin()
# 调用 greet(player),然后调用 greet(player, "Welcome back")
# 在下方声明 greet(),将 "Hello" 设为默认问候语
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: GDScript 在线编译器