Док пишете Го код, наћи ћете да је форматирање стрингова веома корисно у многим ситуацијама. Можда анализирате улазе или правите сложенији излаз од једноставне конкатенације. Можда радите са типовима који нису обични стрингови.
Форматирање стрингова у Го користи познати процес и синтаксу функције принтф, коју користе и језици од Јаве до Хаскелл-а.
Го пружа различите методе за форматирање стрингова у фмт пакет. Можете користити функције и глаголе за форматирање стрингова у зависности од операције или улаза које желите да форматирате.
Форматирање стрингова у Го
Функције у фмт пакету су сличне колегама, нпр функција принтф у басх-у или Ц. Го своје глаголе обликовања изводи из Ц.
Користите глаголи обликовања низа као чувари места за вредности ваших променљивих у низу који садржи. Затим можете проследити тај стринг за форматирање функцији као што је Принтф, заједно са вредностима које одговарају тим чуварима места.
Не можете да користите глаголе за обликовање низа са Принт и Принтлн методе. Можете их користити са методама као што су Принтф и Спринтф.
фмт. Принтлн("Ово је тест %в", 90)
фмт. Принтф("Ово је тест %в", 90)
Тхе %в глагол штампа било коју вредност у свом подразумеваном формату. Тхе Принтлн метода не препознаје глаголе и штампа све аргументе које прими. Тхе Принтф и Спринтф функције обе форматирају први аргумент стринга који им проследите.
Функције за форматирање низа у пакету фмт
Форматирање стрингова у програмски језик Го захтева да користите функцију обликовања стрингова и глагол. Функција враћа форматирани стринг, а глаголи су чувари места за улазе у стринг.
Тхе Принтф метода форматира улаз према спецификацији формата и враћа број уписаних бајтова или грешака.
фмт. Принтф("Ово је тест %в", 90)
Уобичајено, нећете морати да бринете о грешкама када користите Принтф методом.
Тхе Спринтф метода форматира према наведеном формату и враћа резултат као стринг.
вар резултат = фмт. Спринтф("Ово је тест %в", 90)
Тхе Фпринтф метода форматира стринг и записује га у писца (методе које имплементирају ио. Вритер интерфејс)
// запис података у стандардни излаз
резултат, грешка = фмт. Фпринтф (писац, "Ово је тест %в", 90)
Тхе Фсцанф метода скенира из читача и форматира према наведеном формату.
вар узети низ
// читање података из датог низа
реадСтринг := стрингс. НевРеадер("Ово је тест")
прочитај, грешка := фмт. Фсцанф (читач, "%в", &таке)
У овом случају, Фсцанф декодира низ из читача у узети променљива, и читати променљива садржи резултат формата.
Глаголи обликовања стрингова
Го пружа многе глаголе за форматирање које можете користити заједно са функцијама обликовања стрингова.
Постоје општи глаголи за форматирање стрингова као што су %в глагол у функцијама за форматирање низа примери. Можете да користите опште глаголе за форматирање низова да бисте форматирали било који тип података.
Можете користити %#в глагол за излаз било које вредности, тхе %+в за структуре, тхе %Т глагол за врсту било које вредности, и тхе %% глагол без вредности.
тип било који струцт {
име низ
старости инт
исЛоггедИн боол
}вар инстанца = било који {
име: "Јохн Дое",
старост: 34,
исЛоггедИн: истинито,
}
вар резултат = фмт. Спринтф("Ово је а струцт пример форматирања %+в", пример)
фмт. Принтлн (резултат)
Тхе резултат променљива садржи форматирани стринг инстанциране структуре. Ако га одштампате, требало би да изгледа отприлике овако:
Ово је пример форматирања структуре {наме: Јохн Дое аге: 34 исЛоггедИн:истинито}
Постоје глаголи за форматирање одређених Го изворних типова података, укључујући канале и показиваче.
Глагол | Функционалност |
---|---|
%т | боолеанс. |
%д | инт, инт8 итд. |
%д, %#к ако се штампа са %#в | уинт, уинт8 итд. |
%г | флоат32, цомплек64, итд. |
%с | низ. |
%п | цхан. |
%П | показивач. |
Желећете да будете сигурни да не правите грешке са глаголима јер су они осетљиви на велика и мала слова, као што је цхан и показивач глаголи.
Форматирање целих бројева и плутајућих
Постоје глаголи за форматирање низова за форматирање целих бројева различите основе. Можете користити било који од ових глагола за форматирање целих бројева
Глагол | Функционалност |
---|---|
%б | база 2 |
%ц | знак представљен одговарајућом Уницоде кодном тачком. |
%д | база 10. |
%о | база 8. |
%О | основа 8 са префиксом 0о. |
%к | литерал карактера са једним наводницима безбедно је побегао са Го синтаксом. |
%Икс | основа 16, са малим словима за а-ф. |
%ИКС | основа 16, са великим словима за А-Ф. |
%У | Уницоде формат: У+1234; исто као "У+%04Кс". |
На пример, можете форматирати цео број користећи %д глагол:
вар резултат = фмт. Спринтф("Ово је пример целобројног форматирања %д", 90)
фмт. Принтлн (резултат)
Ово су глаголи за форматирање бројева са покретним зарезом.
Глагол | Функционалност |
---|---|
%б | бездецимални научни запис са експонентом степена два, на начин стрцонв. ФорматФлоат са 'б' форматом, нпр. -123456п-78 |
%е | научна нотација, нпр. -1,234456е+78 |
%Е | децимални зарез, али без експонента, нпр. 123.456 |
%ф | децимални зарез, али без експонента, нпр. 123.456 |
%Ф | синоним за %ф. |
%г | %е за велике експоненте, %ф иначе. Прецизност испод. |
%Г | %Е за велике експоненте, %Ф иначе |
%Икс | хексадецимални запис (са децималним степеном два експонента), нпр. -0к1.23абцп+20. |
%ИКС | хексадецимални запис великим словима, нпр. -0Кс1.23АБЦП+20. |
Ево примера форматирања децималног зареза без експонента са %ф глагол.
вар резултат = фмт. Спринтф("Ово је пример форматирања са плутајућим зарезом %ф", 432.9503)
фмт. Принтлн (резултат)
Увек можете користити опште глаголе ако нисте сигурни у врсту.
Форматирање стрингова и бајтова
Стрингови и делови типова бајтова су прилично слични у Го. Ово су заставице за форматирање стрингова и бајтова.
Глагол | Функционалност |
---|---|
%с | неинтерпретирани бајтови стринга или пресека |
%к | стринг са двоструким наводницима је безбедно побегао са Го синтаксом |
%Икс | основа 16, мала слова, два знака по бајту |
%ИКС | основа 16, велика слова, два знака по бајту |
Ево примера форматирања стринга помоћу %с глагол.
вар резултат = "пример"
вар резултат = фмт. Спринтф("Ово је а низ пример форматирања %с", резултат)
фмт. Принтлн (резултат)
Пакет фмт је неопходан за Питхон програмирање
Тхе фмт пакет садржи већину функционалности које су вам потребне за форматирање стрингова. Го такође пружа а жице пакет за манипулацију стринговима и а Пријава пакет који може форматирати стрингове за евидентирање.
Тхе фмт пакет има функције које имплементирају ио. Вритер и ио. Реадер интерфејси. Биће вам корисно за многе случајеве коришћења као што је прављење веб апликација и апликација командне линије.