Skip to content

Instantly share code, notes, and snippets.

@dant3
Created November 23, 2017 11:27
Show Gist options
  • Save dant3/601366c98df4284fab43198e3176548a to your computer and use it in GitHub Desktop.
Save dant3/601366c98df4284fab43198e3176548a to your computer and use it in GitHub Desktop.
KotlinScriptDemo
import javax.script.ScriptEngine
import javax.script.ScriptEngineManager
import kotlin.system.exitProcess
fun ScriptEngine.bindVal(name: String, type: String, value: Any) {
put(name, value)
eval("val $name = bindings[\"$name\"] as $type")
}
fun main(args: Array<String>) {
val factory = ScriptEngineManager().getEngineByExtension("kts").factory
val engine = factory!!.scriptEngine
engine.bindToLocal("a", "Int", 123)
engine.bindToLocal("b", "List<Int>", listOf(1, 2, 3))
println(engine.eval("b.sum() + a"))
exitProcess(0)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment