Использование метода Title для написания строки с заглавной буквы в Golang

Опубликовано: 7 Января, 2023

Метод strings.Title устарел в Golang, поэтому нам нужна альтернатива, чтобы сделать наши строки заглавными или заглавными. Пакеты text/case и text/language — это рекомендуемый способ оформления строк Title в Golang. В этой статье мы поймем, как использовать метод Title в пакете text/cases.

Подход

Метод Title предоставляется пакетом text/cases, который помогает в создании объекта Caser. Этот объект caser может в дальнейшем использоваться в строках для форматирования или выполнения операций над строками и возврата результирующей строки.

Итак, используя метод Title, мы создадим объект Caser, который действует как объект для выполнения желаемых опций, в данном случае мы являемся заголовком строки. Метод Title принимает такие параметры, как тип языка, которые можно передать для фильтрации строки в соответствии с семантикой этого конкретного языка. Таким образом, с помощью этого метода у нас есть широкий выбор языков на выбор.

Кроме того, мы должны вызвать объект Caser с определенными методами для строк, которые можно использовать для оценки результатов в определенном формате. Мы можем вызвать связанные методы объекта Caser для оценки строки, верхнего регистра и т. д. Таким образом, мы получим результирующую строку в форме заголовка.

Итак, чтобы выполнить вышеуказанную задачу, выполните следующие пункты шаг за шагом:

Шаг 1 – Установка пакетов

Давайте сначала инициализируем проект go. Мы можем просто создать пустой файл, и вы можете назвать его как хотите, я назову его main.go. Затем мы можем инициализировать мод go, который является инструментом управления пакетами для проектов Golang. Командой инициализации go mod. У нас будет инициализирован проект go.

go mod init <name>

Итак, после инициализации проекта go мы можем установить пакеты text/cases и text/language. Мы можем установить его с помощью команды go get из командной строки.

go get golang.org/x/text/cases

go get golang.org/x/text/language

Итак, теперь у нас есть пакеты text/case и text/language, установленные внутри проекта go. Теперь у нас будет доступ к этим пакетам из скриптов. Теперь мы можем перейти к скриптовой части Title, обрамляющей строку с помощью метода Title из этих пакетов.

Шаг 2 – Настройка параметров метода Title

Чтобы работать с кейсами, нам нужно сначала создать объект Caser, мы не можем напрямую использовать метод Title, так как он возвращает объект типа Caser вместо строки. Вот почему нам нужно создать тип Caser, а затем обработать объект Caser в соответствии с нашими желаниями. Для вызова метода Title нам требуется один параметр — тип языка. Это может быть любой из упомянутых списков типа языка.

Go




// Go program to illustrate Title method to capitalise string
package main
 
import (
    "fmt"
 
    "golang.org/x/text/cases"
    "golang.org/x/text/language"
)
 
func main() {
    str := "peter parker. james bond"
    caser := cases.Title(language.English)
}

Итак, здесь мы определили строку с некоторыми словами, и они образуют как бы два английских предложения из-за точки в конце второго слова. Так что я строка, которую мы хотим сделать в заголовке.

Затем мы определяем переменную caser, которая будет использоваться для заголовка строки. Но мы должны сначала создать некий объект, над которым мы можем работать позже, чтобы преобразовать его в строку. Мы вызываем функцию Title из пакета case, как уже говорилось, метод Title принимает один параметр и один необязательный параметр. Первый параметр — это тип языка. Мы установили тип языка из языкового пакета и получили доступ к английскому типу из него. Это создаст объект caser, который, если мы попытаемся напечатать, будет выглядеть как адрес памяти.

go run main.go

Итак, мы знаем, что объект не имеет строкового типа, нам нужно вызвать определенные методы для возможности приведения к строковому представлению данных. Если мы видим исходный код объекта caser, он возвращает тип преобразователя. Объект преобразования — это фактический базовый объект, который преобразует строку в заглавный регистр. Поскольку мы использовали метод title для объекта типа case, мы получим преобразование для выполнения преобразования в проанализированную строку.

Шаг 3 – Использование объекта case для заголовка строки case

Поскольку у нас есть объект caser, мы можем вызвать для него несколько методов для возврата типа в виде строки. У нас есть метод, доступный в пакете case, применимый к объекту типа caser с именем String, который выдает строковое представление преобразованной строки, переданной функции.

Go




// Go program to illustrate Title method to capitalise string
package main
 
import (
    "fmt"
 
    "golang.org/x/text/cases"
    "golang.org/x/text/language"
)
 
func main() {
    str := "peter parker. james bond"
    caser := cases.Title(language.English)
    fmt.Println("str = ", str)
    str_title := caser.String(str)
    fmt.Println("str_title_cased = ", str_title)
}

Здесь мы видим, что строка успешно преобразована в заглавный регистр. Метод String в объекте типа caser принимает строку параметров, которая применяет преобразование в соответствии с объектом типа caser и возвращает строковый результат. Таким образом, используя объект caser и применяя к нему преобразование title, мы вернули строковое представление объекта преобразования в виде title.