Читаоци попут вас помажу у подршци МУО. Када обавите куповину користећи везе на нашем сајту, можда ћемо зарадити провизију за партнере. Опширније.

Форматирање кода је важан начин за побољшање његове читљивости, доследности и поновне употребе. Правилно форматиран код је лакши за разумевање, модификовање и одржавање.

Једна од одличних карактеристика Го-а су његове добро дефинисане конвенције форматирања. Можете да користите уграђени пакет за форматирање и команду го фмт да аутоматски форматирате свој код. Ово ће помоћи да се осигура да други Го програмери могу да га прочитају што је лакше могуће.

Пакет формата и команда фмт

Тхе формату пакет имплементира стандардно форматирање за Иди изворни код. Пакет интероперише са го формат алат командне линије за флексибилност у форматирању Го кода.

Пакет формата је подмодул у пакету го. Ево како можете да га увезете:

увоз"иди/формат"

Можете да прегледате документацију команде го фмт навођењем помоћ команду пре фмт команда:

иди помози фмт

Наведите име датотеке након команде фмт да бисте форматирали ту датотеку. Ово ће прилагодити размак и удубљење вашег кода да буде у складу са Го стандардима.

instagram viewer

го фмт маин.го

Иза кулиса, го фмт је псеудоним за команду гофмт, конкретно:

гофмт -л -в

Те заставице доводе до тога да гофмт упише све промене у сваку датотеку коју доставите и наведе имена датотека које мења.

Можете додати -Икс заставицу на команду фмт. Ознака -к помаже у писању промена из форматера у оригиналну датотеку.

го фмт -к маин.го

Тхе флаг функционише слично као -к, али не прави промене. Уместо тога, приказује команде које би се фмт покренуле без -н:

иди фмт -н главни.го

Ознака говори форматеру да прикаже промене, што вам омогућава да их прво прегледате пре него што их примените.

Ево једноставног Го програма који петља кроз целе бројеве од нула до пет и штампа стринг „Хелло Ворлд!“.

// форматирање датотеке под називом маин.го као што је приказано у горњем примеру 

пакет главни
увоз"фмт"
фунцглавни() {
вар Икс инт=5
за и:=0;и фмт. Принтлн("Здраво Свете!")
}
}

Форматирање Го изворног кода

Пакет формата садржи а Извор функција за форматирање Го датотека из програма. Мораћете да прочитате датотеку и проследите садржај као аргументе функцији Соурце.

Функција Извор ће вратити форматирани садржај датотеке који можете уписати у датотеку или нову.

Можете читати датотеке помоћу РеадФиле функција на иоутил пакет. Функција РеадФиле преузима име датотеке и враћа садржај датотеке и грешку за руковање.

филеЦонтент, ерр := иоутил. РеадФиле("маин.го")

ако ерр != нула {
Пријава. Фаталн(„Дошло је до грешке при читању датотеке“, грешка)
}

Прослеђивање садржаја датотеке у функцију Соурце враћа форматирани садржај датотеке и грешку за руковање.

форматирано, грешка := формат. Извор (садржај датотеке)

ако ерр != нула {
Пријава. Фаталн(„Дошло је до грешке у форматирању са изворном функцијом“, грешка)
}

Можете уписати форматирани садржај датотеке у датотеку помоћу ВритеФиле функција на иоутил пакет. Функција ВритеФиле преузима име датотеке, садржај и режим дозволе датотеке, враћајући било коју грешку(е). Режим дозволе је релевантан само ако датотека не постоји, у ком случају ће је ВритеФиле креирати.

Тхе 0644 режим дозволе датотеке даје:

  • Дозволе власника датотеке за читање и писање.
  • Дозволе за читање другим корисницима у истој групи као и власник.
  • Нема дозвола за друге кориснике.
ерр = иоутил. ВритеФиле("маин.го", форматиран, 0644)

ако ерр != нула {
Пријава. Фаталн(„Дошло је до грешке при писању датотеке“, грешка)
}

Алтернативно, можете проследити Го изворни код функцији Соурце за форматирање. Можете да наведете код у парчету бајта користећи квачице (`):

пакет главни

увоз (
"фмт"
"иди/формат"
)

фунцглавни() {
// једноставан програм који израчунава површину троугла са математиком
// функција
форматирано, грешка := формат. Извор([]бајт(`
пакет главни
увоз(
"фмт"
"математика"
)
фунцглавни(){
вар а флоат64=3
вар б флоат64=4
вар ц флоат64=5
вар с флоат64=(а+б+ц)/2
вар области флоат64=матх. Скрт (с*(с-а)*(с-б)*(с-ц))
фмт. Принтлн("Површина троугла је:", област)
}
`))

ако ерр != нула {
Пријава. Фаталн(„Дошло је до грешке у форматирању са изворном функцијом“, грешка)
} друго {
фмт. Принтлн(низ(форматирано))
}
}

Приликом форматирања, мораћете да конвертујете исечак бајта у стринг помоћу низ функција. Ево форматираног изворног кода.

Прилагођавање процеса форматирања

Можете прилагодити процес форматирања помоћу пакета формата Цонфиг струцт. Структура Цонфиг садржи поља у којима можете одредити опције формата приликом инстанцирања.

увоз"иди/формат"

цонфиг := &формат. конфигурација{
// Табвидтх поставља број размака по табулатору.
Ширина табулатора: 8,

// УсеТабс означава да ли форматер треба да користи табове уместо
// размаци.
Користи картице: лажно,

// ТабИндент се користи за одређивање да ли почетно увлачење треба да буде
// урађено помоћу табулатора или размака.
ТабИндент: истина,

// НоФиналТаб одређује да ли треба уклонити завршну картицу
// линије пре него што се форматирају.
НоФиналТаб: истина,

// Спацес специфицира да ли размаци треба да се користе за поравнање.
Размаци: истина,

// НоТримТраилингСпаце специфицира да ли треба да се заврши бели размак
// бити исечен из редова пре него што се форматирају.
НоТримТраилингСпаце: лажно,
}

Можете да користите поља да бисте прилагодили понашање вашег форматера постављањем опција на основу ваших захтева.

Затим можете користити метод Соурце ове структуре да форматирате исечак бајта на основу ваше конфигурације.

фунцглавни() {
филеЦонтент, ерр := иоутил. РеадФиле("маин.го")

// имајте на уму да је ово Соурце метод типа `цонфиг`, а не из
// сам пакет `формат` иако је функционалност иста, ви ћете
// треба да се придржавате овога ако треба да конфигуришете форматер
форматирано, ерр := цонфиг. Извор (садржај датотеке)

ако ерр != нула {
Пријава. Фаталн(„Дошло је до грешке у форматирању са типом конфигурације“, грешка)
}

иоутил. ВритеФиле("маин.го", форматиран, 0644)
}

Позивање конфигурације. Соурце() функција овако форматира садржај маин.го датотеку користећи опције конфигурације. Враћа форматирани садржај као исечак бајтова и грешку.

Можете да форматирате и манипулишете стрингом у Го

Пакет форматирања и команда го фмт могу вам помоћи да аутоматизујете процес форматирања кода.

Го такође пружа фмт пакет за форматирање стрингова и пакет стрингова за манипулацију стринговима.

Пакет фмт имплементира једноставнији форматиран И/О са функцијама аналогним Ц-овим принтф и сцанф функцијама. Функција стрингс имплементира једноставне функције за манипулацију УТФ-8 кодираним стринговима.