Godotに新しい辞書がやってきた
Godotエンジンに型指定できるDictionaryが追加されました。正式版(?)はまだだけど4.4 Dev2でもう使えるよ!
Before
var _defs: Dictionary = {}
# 意図しない格納ができてた
_defs[&"JumpSlash"] = SkillDef.new()
_defs[&"HeavyPunch"] = SkillCost.new() # 書き間違えに気づかない
# 型指定で取得すると型安全判定されなかった
var def: SkillDef = _defs[&"IceArrow"] # 行番号が暗くなる
var def: SkillDef = _defs[&"FireArrow"] as SkillDef # これでもダメ
After
var _defs: Dictionary[StringName, SkillDef] = {}
# 意図しない格納はエラーで教えてくれる
_defs[&"JumpSlash"] = SkillDef.new()
_defs[&"HeavyPunch"] = SkillCost.new() # 事前にエラーで教えてくれる
# 型指定で取得できる
var def: SkillDef = _defs[&"IceArrow"] # 行番号が明るいまま
var cost: SkillCost = _defs[&"FireArrow"] # 事前にエラーで教えてくれる
↓ちょっと使ってみた感じ、こんな風になってそうです。
KeyとValueに、自作クラスも指定可能
KeyとValueに、自作enumも指定可能
KeyとValueに、クラス内クラスも指定可能
添え字(a[これ])には、Keyに指定したクラスだけでなく、その継承クラスを入れてもいい
RefCountedやNodeを添え字にしたときに、それが同一かどうかは、内容ではなく、同一のインスタンスかどうかで判定されているっぽい。(これは型指定とは関係ないけど)
keys()とvalues()が返す配列は、型の無い普通のArray。
これでまた一つGDScriptが、迷いなく書けるようになりました。やったね。
以上です~~
この記事が気に入ったらサポートをしてみませんか?