Site Overlay

Ensimmäinen ohjelmasi

Perinteisesti ensimmäistä ohjelmaa, jonka kirjoitat millä tahansa ohjelmointikielellä, kutsutaan ”Hello World”-ohjelmaksi – ohjelmaksi, joka yksinkertaisesti antaa Hello World päätteelle. Kirjoitetaanpa sellainen Go:lla.

Luodaan ensin uusi kansio, johon voimme tallentaa ohjelmamme. Luo kansio nimeltä ~/src/golang-book/chapter2. (Missä ~ tarkoittaa kotihakemistoasi) Päätelaitteesta voit tehdä tämän syöttämällä seuraavat komennot:

mkdir src/golang-bookmkdir src/golang-book/chapter2

Kirjoita tekstieditorilla seuraavat komennot:

package mainimport "fmt"// this is a commentfunc main() { fmt.Println("Hello World")}

Varmista, että tiedostosi on identtinen sen kanssa, mitä tässä näytetään, ja tallenna se nimellä main.go äsken luotuun kansioon. Avaa uusi terminaali ja kirjoita seuraava:

cd src/golang-book/chapter2go run main.go

Terminaalissa pitäisi näkyä Hello World. Komento go run ottaa seuraavat tiedostot (välilyönneillä erotettuna), kääntää ne suoritettavaksi tiedostoksi, joka tallennetaan väliaikaiseen hakemistoon, ja ajaa sitten ohjelman. Jos Hello World ei näy näytössä, olet saattanut tehdä virheen kirjoittaessasi ohjelmaa. Go-kääntäjä antaa vihjeitä siitä, missä virhe on. Kuten useimmat kääntäjät, Go-kääntäjä on äärimmäisen pedantti eikä siedä virheitä.

How to Read a Go Program

Katsotaanpa tätä ohjelmaa tarkemmin. Go ohjelmat luetaan ylhäältä alaspäin, vasemmalta oikealle. (Kuten kirjaa) Ensimmäinen rivi sanoo näin:

package main

Tämä tunnetaan nimellä ”paketti-ilmoitus”. Jokaisen Go -ohjelman täytyy alkaa paketti-ilmoituksella. Paketit ovat Go:n tapa organisoida ja käyttää koodia uudelleen. Go:n ohjelmia on kahdenlaisia: suoritettavia ohjelmia ja kirjastoja. Suoritettavat ohjelmat ovat sellaisia ohjelmia, joita voimme ajaa suoraan päätelaitteesta. (Windowsissa ne päättyvät .exe) Kirjastot ovat koodikokoelmia, jotka paketoimme yhteen, jotta voimme käyttää niitä muissa ohjelmissa. Tutustumme kirjastoihin tarkemmin myöhemmin, nyt vain varmista, että tämä rivi sisältyy kaikkiin kirjoittamiisi ohjelmiin.

Seuraava rivi on tyhjä rivi. Tietokoneet esittävät rivinvaihdon erikoismerkillä (tai useammalla merkillä). Uudisviivoja, välilyöntejä ja tabulaattoreita kutsutaan välilyönneiksi (koska niitä ei voi nähdä). Go ei useimmiten välitä välilyönneistä, me käytämme niitä, jotta ohjelmat olisivat helpommin luettavissa. (Voisit poistaa tämän rivin ja ohjelma käyttäytyisi täsmälleen samalla tavalla)

Tällöin näemme tämän:

import "fmt"

Avainsanalla import liitämme muiden pakettien koodia käytettäväksi ohjelmassamme. fmt-paketti (lyhenne sanoista format) toteuttaa tulon ja lähdön muotoilun. Ottaen huomioon sen, mitä juuri opimme paketeista, mitä luulet, että fmt-paketin tiedostot sisältäisivät alkuunsa?

Huomaa, että yllä oleva fmt on ympäröity kaksinkertaisilla lainausmerkeillä. Tällaisten kaksinkertaisten lainausmerkkien käyttö tunnetaan nimellä ”string literal”, joka on eräänlainen ”lauseke”. Go:ssa merkkijonot edustavat tietyn pituisia merkkijonoja (kirjaimia, numeroita, symboleja, …). Merkkijonoja kuvataan tarkemmin seuraavassa luvussa, mutta nyt on tärkeää pitää mielessä, että avaavaa "-merkkiä on lopulta seurattava toinen "-merkki ja kaikki näiden kahden välissä oleva sisältyy merkkijonoon. (Itse "-merkki ei kuulu merkkijonoon)

//-merkillä alkavaa riviä kutsutaan kommentiksi. Go-kääntäjä jättää kommentit huomiotta, ja ne ovat olemassa sinun (tai sen, joka poimii ohjelmasi lähdekoodin) vuoksi. Go tukee kahta eri kommenttityyliä: //-kommentteja, joissa kaikki //:n ja rivin lopun välinen teksti on osa kommenttia, ja /* */-kommentteja, joissa kaikki *-kirjainten välinen teksti on osa kommenttia. (Ja voi sisältää useita rivejä)

Tämän jälkeen näet funktioiden julistuksen:

func main() { fmt.Println("Hello World")}

Funktiot ovat Go -ohjelman rakennuspalikoita. Niillä on sisääntuloja, ulostuloja ja sarja vaiheita, joita kutsutaan lausekkeiksi ja jotka suoritetaan järjestyksessä. Kaikki funktiot alkavat avainsanalla func, jota seuraa funktion nimi (tässä tapauksessa main), luettelo nollasta tai useammasta ”parametrista” sulkujen ympäröimänä, valinnainen paluutyyppi ja ”runko”, joka on ympäröity sulkeilla. Tällä funktiolla ei ole parametreja, se ei palauta mitään ja sillä on vain yksi lauseke. Nimi main on erityinen, koska se on funktio, jota kutsutaan, kun ohjelma suoritetaan.

Ohjelmamme viimeinen osa on tämä rivi:

 fmt.Println("Hello World")

Tämä lauseke koostuu kolmesta osasta. Ensin käytämme toista fmt-paketin sisällä olevaa funktiota nimeltä Println (tämä on fmt.Println-osio, Println tarkoittaa Print Line). Sitten luomme uuden merkkijonon, joka sisältää Hello World, ja kutsumme (tunnetaan myös nimellä call tai execute) kyseistä funktiota merkkijonon ollessa ensimmäinen ja ainoa argumentti.

Tässä vaiheessa olemme jo nähneet paljon uutta terminologiaa, ja saatat olla hieman hämmentynyt. Joskus on hyödyllistä lukea ohjelma tietoisesti ääneen. Yksi lukeminen juuri kirjoittamastamme ohjelmasta voisi mennä näin:

Luo uusi suoritettava ohjelma, joka viittaa fmt-kirjastoon ja sisältää yhden funktion nimeltä main. Tämä funktio ei ota argumentteja, ei palauta mitään ja tekee seuraavaa: Käyttää fmt-paketin sisällä olevaa Println-funktiota ja kutsuu sitä käyttäen yhtä argumenttia – merkkijonoa Hello World.

Println-funktio tekee todellisen työn tässä ohjelmassa. Voit tutustua siihen tarkemmin kirjoittamalla terminaaliin seuraavaa:

godoc fmt Println

Muun muassa tämän pitäisi näkyä:

Println formats using the default formats for its operands and writes to standard output. Spaces are always added between operands and a newline is appended. It returns the number of bytes written and any write error encountered.

Go on hyvin dokumentoitu ohjelmointikieli, mutta tätä dokumentaatiota voi olla vaikea ymmärtää, ellei ole jo perehtynyt ohjelmointikieliin. Siitä huolimatta godoc-komento on erittäin hyödyllinen ja hyvä paikka aloittaa aina, kun sinulla on kysyttävää.

Takaisin käsillä olevaan funktioon: tämä dokumentaatio kertoo, että Println-funktio lähettää kaiken, mitä annat sille, standardilähdölle – nimellä terminaalin ulostulo, jossa työskentelet. Tämä funktio saa aikaan sen, että Hello World tulee näkyviin.

Seuraavassa luvussa tutkimme, miten Go tallentaa ja esittää asioita, kuten Hello World, tutustumalla tyyppeihin.

Ongelmat

  • Mikä on välilyönti?

  • Mikä on kommentti? Mitkä ovat kaksi tapaa kirjoittaa kommentti?

  • Ohjelmamme alkoi package main. Millä alkavat fmt-paketin tiedostot?

  • Käytimme fmt-paketissa määriteltyä Println-funktiota. Jos haluaisimme käyttää os-paketissa olevaa Exit-funktiota, mitä meidän pitäisi tehdä?

  • Muutetaan kirjoittamaamme ohjelmaa niin, että Hello World-tulostuksen sijasta se tulostaa Hello, my name is, jota seuraa nimesi.

← Edellinen Index

.

Vastaa

Sähköpostiosoitettasi ei julkaista.