Define start variable with local scope in the closure #1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I had trouble with the step definition from friendsuggest.groovy introduced on page 236 of version P1.0 of the PDF. I, like another reader on the forum, get the following error:
I think it's related to variable scoping in the Groovy Shell, and the attached commit fixes it for me.
Here's my working:
This shows that we start with no shell variable name start, then define the
friendsuggest
step as in the book, and then see the error I report above. Then I define a shell variable namedstart
and now the query works as expected. Notice that my shell variable has been overwritten by the execution offriendsuggest
.Here's the better result from using a step defined identically except with a local variable definition for the internal variable: