0

How does one send the result of an anonymous function as an argument into another function?

As an example:

object TestThisFunction {

  def getString(): String = {
    "foo"
  }

  def useString(foo: String) = {
      println(foo + "bar")
  }

  useString("foo");
  useString(getString());

  // This does not work: type mismatch; found : () => String required: String
  useString(() => {
    "foo"  
  })
}

Is there some syntax that would make the last call to useString() work using an anonymous function?

Thank you for your time.

1 Answer 1

3

Call the anonymous function immediately after creating it, to have it's evaluated value be used, instead of the function itself:

useString((() => {
  "foo"  
})())

You can also pass in arguments, if needed:

scala> ((a: String) => { a })("bar")
res3: String = bar
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.