вторник, 8 сентября 2020 г.

Пакет strings в Golang, функция Map, Repeat, Replace

Функция Map

func Map(mapping func(rune) rune, s string) string

Map возвращает копию строки s со всеми ее символами, измененными в соответствии с mapping функцией. Если mapping возвращает отрицательное значение, символ удаляется из строки без замены.

Пример использования Map

package main

import (
    "fmt"
    "strings"
)

func main() {
    rot13 := func(r rune) rune {
        switch {
        case r >= 'A' && r <= 'Z':
            return 'A' + (r-'A'+13)%26
        case r >= 'a' && r <= 'z':
            return 'a' + (r-'a'+13)%26
        }
        return r
    }
    fmt.Println(strings.Map(rot13, "'Twas brillig and the slithy gopher..."))
}

Вывод:

'Gjnf oevyyvt naq gur fyvgul tbcure...

Функция Repeat

func Repeat(s string, count int) string

Repeat возвращает новую строку, состоящую из count копий строки s.

Паникует, если count отрицательный или если результат (len(s) * count) переполняется.

Пример использования Repeat

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println("ba" + strings.Repeat("na", 2))
}

Вывод:

banana

Функция Replace

func Replace(s, old, new string, n int) string

Replace возвращает копию строки s с первыми n неперекрывающимися экземплярами old, замененными new. Если old пуст, он соответствует началу строки и после каждой последовательности UTF-8, что дает до k + 1 замен для k-рунной строки. Если n < 0, нет ограничений на количество замен.

Пример использования Replace

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.Replace("oink oink oink", "k", "ky", 2))
    fmt.Println(strings.Replace("oink oink oink", "oink", "moo", -1))
}

Вывод:

oinky oinky oink
moo moo moo

Функция ReplaceAll

func ReplaceAll(s, old, new string) string

ReplaceAll возвращает копию строки s, в которой все неперекрывающиеся экземпляры old заменены на new. Если old пуст, он соответствует началу строки и после каждой последовательности UTF-8, что дает до k + 1 замен для k-рунной строки.

Пример использования ReplaceAll

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.ReplaceAll("oink oink oink", "oink", "moo"))
}

Вывод:

moo moo moo


Читайте также:


Комментариев нет:

Отправить комментарий