diff --git a/src/main/java/com/annimon/ownlang/lib/MapValue.java b/src/main/java/com/annimon/ownlang/lib/MapValue.java index 40ba519..5d3d33e 100644 --- a/src/main/java/com/annimon/ownlang/lib/MapValue.java +++ b/src/main/java/com/annimon/ownlang/lib/MapValue.java @@ -5,6 +5,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Objects; +import java.util.function.Consumer; /** * @@ -31,6 +32,18 @@ public class MapValue implements Value, Iterable> { this.map = map; } + public boolean ifPresent(String key, Consumer consumer) { + return ifPresent(new StringValue(key), consumer); + } + + public boolean ifPresent(Value key, Consumer consumer) { + if (map.containsKey(key)) { + consumer.accept(map.get(key)); + return true; + } + return false; + } + public ArrayValue toPairs() { final int size = map.size(); final ArrayValue result = new ArrayValue(size);