---
name: ChunkString
slug: chunkstring
sourceRef: it/string.go#L130
category: it
subCategory: string
playUrl: "https://go.dev/play/p/Bcc5ixTQQoQ"
variantHelpers:
  - it#string#chunkstring
similarHelpers:
  - core#string#chunkstring
position: 0
signatures:
  - "func ChunkString[T ~string](str T, size int) iter.Seq[T]"
---

Returns a sequence of chunks of length `size` from the input string. If the string length is not a multiple of `size`, the final chunk contains the remaining characters. Panics if `size <= 0`.

Examples:

```go
// Even split
seq := it.ChunkString("123456", 2)
var out []string
for s := range seq { out = append(out, s) }
// out == []string{"12", "34", "56"}
```

```go
// Remainder chunk
seq := it.ChunkString("1234567", 2)
var out []string
for s := range seq { out = append(out, s) }
// out == []string{"12", "34", "56", "7"}
```

```go
// Empty and small inputs
seq1 := it.ChunkString("", 2)
seq2 := it.ChunkString("1", 2)
// seq1 yields ""
// seq2 yields "1"
```