デフォルト値
CoddyのGDScriptジャーニー「基礎」セクションの一部。レッスン 57/92。
パラメーターにはデフォルト値を設定できます。宣言時に=を使って記述します。その場合、呼び出し時にその引数を省略すると、パラメーターにはデフォルト値が設定されます。
func greet(player, greeting = "Hello"):
print(greeting, ", ", player, "!")greet("Ana")
greet("Ana", "Welcome back")Hello, Ana!
Welcome back, Ana!最初の呼び出しでは引数を1つ渡すため、greetingは"Hello"になります。2回目の呼び出しでは独自の値を渡し、それがデフォルト値を置き換えます。
関数には複数のデフォルト値を設定でき、型付きパラメーターにも設定できます。
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()の下に、2つのパラメーターを持つ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") を呼び出す
# デフォルトの挨拶を "Hello" にして、以下に greet() を宣言する
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: GDScriptオンラインコンパイラ