Skip to content

Iteration chapter improvement  #769

Open
@AptRoApt

Description

Strings concatenation is a great topic to learn through TDD, but this topic is not covered in this chapter.

Strings in Go are immutable, so memory reallocates on every change of a string. We can demonstrate this with an example by benchmarking and show a solution: strings.Builder from the strings package.

To do this we can:

  • Add benchmarking before the refactoring stage and run it.
  • Provide a short explanation about strings in Go, explaining the purpose of using strings.Builder.
  • Add strings.Builder in the refactor stage. The final function will look like:
    const repeatCount = 5
    
    func Repeat(character string) string {
       var sb strings.Builder // do not forget to import "strings"
       for i := 0; i < repeatCount; i++ {
           sb.WriteString(character)
       }
       return sb.String()
    }
  • Launch becnhmarking after refactoring

I can make a pull request with this changes, if you want.

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions