Menu
CoddyTech

默认值

本课属于 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):会报错:“可选参数后不能有必需参数”。

challenge icon

挑战

简单

程序会将玩家姓名读入 player。

  1. 在 _ready() 下方,声明一个名为 greet 的函数,它有两个参数:player_name,以及默认值为 "Hello" 的 greeting。它会输出问候语、一个逗号和一个空格、姓名,以及 !。
  2. 在 _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" 设为默认问候语
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: GDScript 在线编译器