Loading collection data...
Collections are a way for you to organize kata so that you can create your own training routines. Every collection you create is public and automatically sharable with other warriors. After you have added a few kata to a collection you and others can train on the kata contained within the collection.
Get started now by creating a new collection.
Yeah I am use to using buffer for strings coming from Java so searched docs for it from the get go, and after seeing the solutions look at the cheap oneliner in code to see what it was doing if anything and nope, just uses the string builder instead of bytes but affectivly the same iterative loop on a count. The only heads up thing was that it preemptively grew the size ahead of time so that if you were looping a large number of times it would not have to resize. https://github.com/golang/go/blob/master/src/strings/strings.go#L533-L536
@ippoippo if you understand a particular technique to be optimal from the onset, and isnt going to complicate your solution, it is not premature to use it. :-)
I have actually been using go professionally since 2013. I use these kata's in their martial arts context, a form to utilize techniques you've learned as reinforcement of that learning.
:-D
Of course... as an programmer who's experienced other languages (C a long time ago, Java, Ruby, a little Objective-C, learning Swift), but is learning/new to Golang then my though process for each kata is.
1a) In this case, just a for loop and do something like
result = result + value
7a) Is the readability of just doing
result = result + value
significantly better thanbuffer.WriteString(value)
.7b) Decide "No", so I decide that code readability is not affected by choosing the admitedly prematurely performance optimized buffer approach.
What I rather like about these Kata is that I find it a great tool to learn about a language. I don't treat the kata as a test of what I know now. Instead, I use it as a mechanism to direct where I research and learn.
Same thing happens after I submit my 'answer', in that I get to learn alternatives ways to do stuff. Better ways, more idiomatic ways in the particular language etc. (I notice this more in the Swift versions).
I think other people do treat the Kata more of a 'test' about what you 'know' without resorting to your books/internet. That too is a valid way to use this site as well. :-)
Snark aside, byte buffer copy is the most efficient string concatination in go.
http://herman.asia/efficient-string-concatenation-in-go