Added Python-like .get() method to Dictionary in GDScript #20488
Added .get() method to Dictionary class in GDScript to return the value if the key exists, or return Null if the key does not exist.
This commit is contained in:
parent
451e5fd051
commit
bf1867aaab
4 changed files with 23 additions and 0 deletions
|
@ -112,6 +112,15 @@ Variant Dictionary::get_valid(const Variant &p_key) const {
|
|||
return E.get();
|
||||
}
|
||||
|
||||
Variant Dictionary::get(const Variant &p_key, const Variant &p_default) const {
|
||||
const Variant *result = getptr(p_key);
|
||||
if (!result) {
|
||||
return p_default;
|
||||
}
|
||||
|
||||
return *result;
|
||||
}
|
||||
|
||||
int Dictionary::size() const {
|
||||
|
||||
return _p->variant_map.size();
|
||||
|
|
|
@ -58,6 +58,7 @@ public:
|
|||
Variant *getptr(const Variant &p_key);
|
||||
|
||||
Variant get_valid(const Variant &p_key) const;
|
||||
Variant get(const Variant &p_key, const Variant &p_default) const;
|
||||
|
||||
int size() const;
|
||||
bool empty() const;
|
||||
|
|
|
@ -486,6 +486,7 @@ struct _VariantCall {
|
|||
VCALL_LOCALMEM0R(Dictionary, keys);
|
||||
VCALL_LOCALMEM0R(Dictionary, values);
|
||||
VCALL_LOCALMEM1R(Dictionary, duplicate);
|
||||
VCALL_LOCALMEM2R(Dictionary, get);
|
||||
|
||||
VCALL_LOCALMEM2(Array, set);
|
||||
VCALL_LOCALMEM1R(Array, get);
|
||||
|
@ -1679,6 +1680,7 @@ void register_variant_methods() {
|
|||
ADDFUNC0R(DICTIONARY, ARRAY, Dictionary, keys, varray());
|
||||
ADDFUNC0R(DICTIONARY, ARRAY, Dictionary, values, varray());
|
||||
ADDFUNC1R(DICTIONARY, DICTIONARY, Dictionary, duplicate, BOOL, "deep", varray(false));
|
||||
ADDFUNC2R(DICTIONARY, NIL, Dictionary, get, NIL, "key", NIL, "default", varray(Variant()));
|
||||
|
||||
ADDFUNC0R(ARRAY, INT, Array, size, varray());
|
||||
ADDFUNC0R(ARRAY, BOOL, Array, empty, varray());
|
||||
|
|
|
@ -87,6 +87,17 @@
|
|||
Return the list of values in the [code]Dictionary[/code].
|
||||
</description>
|
||||
</method>
|
||||
<method name="get">
|
||||
<return type="Variant">
|
||||
</return>
|
||||
<argument index="0" name="key" type="Variant">
|
||||
</argument>
|
||||
<argument index="1" name="default" type="Variant" default="null">
|
||||
</argument>
|
||||
<description>
|
||||
Returns the current value for the specified key in the [code]Dictionary[/code]. If the key does not exist, the method returns the value of the optional default argument, or Null if it is omitted.
|
||||
</description>
|
||||
</method>
|
||||
</methods>
|
||||
<constants>
|
||||
</constants>
|
||||
|
|
Loading…
Reference in a new issue