Bruk av interaktiv shell (REPL)

Go:
Bruk av interaktiv shell (REPL)

Hvordan:

Selv om Go ikke inkluderer en innebygd REPL, har samfunnet skapt verktøy som gore for å fylle dette gapet. Først, installer gore ved å kjøre:

$ go get -u github.com/motemen/gore

Når installert, start gore ved å skrive gore i terminalen din:

$ gore

Du vil se en ledetekst klar til å akseptere Go-kommandoer. La oss prøve et enkelt eksempel:

gore> :import fmt
gore> fmt.Println("Hello, Go REPL!")

Du vil se utskrift som:

Hello, Go REPL!

Variabler og funksjonsdefinisjoner fungerer som forventet. Du kan erklære en funksjon:

gore> :import math
gore> areaCircle := func(radius float64) float64 {
...> return math.Pi * radius * radius
...> }
gore> fmt.Println("Området av en sirkel med radius 4:", areaCircle(4))

Og få utskriften med en gang:

Området av en sirkel med radius 4: 50.26548245743669

Dypdykk:

Konseptet med en REPL er eldgammelt, som går tilbake til Lisp-maskinene på 1960-tallet, og tilbyr en interaktiv programmeringsopplevelse. I motsetning til språk som Python eller JavaScript, ble Go designet uten en REPL, med fokus i stedet på kompilerte binærfiler for ytelse og enkelhet. Dette reflekterer Gos filosofi om enkelhet og dets design for skalerbar og vedlikeholdbar programvare.

Verktøy som gore eller goplay, derimot, fremhever Go-samfunnets ressursstyrke i å bygge bro over dette gapet. Disse verktøyene parser Go-kode dynamisk og bruker go/eval-pakken eller lignende mekanismer til å kjøre den i sanntid, om enn med noen begrensninger sammenlignet med et opprinnelig REPL-miljø. Disse begrensningene stammer fra Gos typsystem og kompileringsmodell, som kan gjøre utførelse på stående fot utfordrende.

Selv om REPL-miljøer er ekstremt nyttige for utdanning og raske tester, har Go-økosystemet vanligvis en tendens til å helle mot tradisjonelle kompiler-og-kjør-prosesser for de fleste utviklingsoppgaver. IDEer og redaktører med støtte for Go, som Visual Studio Code eller GoLand, tilbyr integrerte verktøy for testing og feilsøking som i stor grad reduserer behovet for en REPL for profesjonell utvikling.

For utforskende programmering, prototyping eller læring, tilbyr imidlertid REPL-er som gore et verdifullt alternativ, som tillater programmerere vant til REPLs i andre språk å nyte en lignende opplevelse i Go.