Kurzusok
/
Go
Go
/
Feladatok
/
Gopher gyönyörű lasagnája
Gopher gyönyörű lasagnája

Gopher gyönyörű lasagnája

Tanulófeladat

Bevezetés

A Go egy statikusan típusos, fordított programozási nyelv. Ez a feladat a nyelv három fontos jellemzőjét mutatja be: a csomagokat, a függvényeket és a változókat.

Csomagok

A Go-alkalmazások csomagokba szerveződnek. Egy csomag az ugyanabban a könyvtárban található forrásfájlok gyűjteménye. Egy könyvtár összes forrásfájljának ugyanazt a csomagnevet kell használnia. Amikor importálsz egy csomagot, csak azok az entitások (függvények, típusok, változók, konstansok) használhatók és érhetők el, amelyeknek a neve nagybetűvel kezdődik. A Go ajánlott elnevezési stílusa szerint az azonosítókat camelCase stílusban nevezzük el, kivéve azokat, amelyeknek csomagokon átnyúlóan elérhetőnek kell lenniük, mert azokat PascalCase stílusban kell írni.

package lasagna

Változók

A Go statikusan típusos, ami azt jelenti, hogy minden változónak már fordításkor meg kell lennie a típusának.

A változókat definiálhatod úgy, hogy kifejezetten megadod a típusukat:

var explicit int // Explicitly typed

Használhatsz kezdőértéket is, ilyenkor a fordító a kezdőérték típusának megfelelő típust rendeli a változóhoz.

implicit := 10   // Implicitly typed as an int

Amiután egy változót deklaráltál, az = operátorral adhatsz neki értéket. Egy változó típusa a deklaráció után soha nem változhat meg.

count := 1 // Assign initial value
count = 2  // Update to new value

count = false // This throws a compiler error due to assigning a non `int` type

Konstansok

A konstansok ugyanúgy egy adatot tárolnak, mint a változók, de az értékük a program futása közben nem változhat meg.

A konstansokat a const kulcsszóval definiáljuk, és lehetnek számok, karakterek, stringek vagy Boolean értékek:

const Age = 21 // Defines a numeric constant 'Age' with the value of 21

Függvények

A Go-függvények nulla vagy több paramétert fogadnak. A paraméterek típusát mindig meg kell adni, itt nincs típuskövetkeztetés.

A függvények a return kulcsszóval adják vissza az értékeket.

Egy függvényt úgy hívunk meg, hogy megadjuk a nevét, és minden paraméteréhez átadunk egy argumentumot.

Fontos, hogy a Go kétféle megjegyzést támogat. Az egysoros megjegyzések előtt // áll, a többsorosakat pedig /* és */ közé írjuk.

package greeting

// Hello is a public function.
func Hello (name string) string {
    return hi(name)
}

// hi is a private function.
func hi (name string) string {
    return "hi " + name
}

Utasítások

Ebben a feladatban kódot írsz majd, hogy egy remek lasagnét készíthess a kedvenc szakácskönyvedből.

Négy részfeladat vár rád, és mindegyik a lasagna elkészítésével töltött időhöz kapcsolódik.

1. Határozd meg a várható sütési időt percben

Definiáld az OvenTime konstanst azzal, hogy hány percig kell a lasagnának a sütőben lennie. A szakácskönyv szerint a várható sütési idő 40 perc:

OvenTime
// => 40

2. Számítsd ki a hátralévő sütési időt percben

Definiáld a RemainingOvenTime() függvényt, amely paraméterként megkapja, hogy a lasagna hány perce van a sütőben, és visszaadja, hogy a lasagnának még hány percig kell a sütőben maradnia, az előző részfeladatban megadott várható sütési idő alapján.

func RemainingOvenTime(actual int) int {
    // TODO
}

RemainingOvenTime(30)
// => 10

3. Számítsd ki az előkészítési időt percben

Definiáld a PreparationTime függvényt, amely paraméterként megkapja a lasagnába rakott rétegek számát, és visszaadja, hogy hány percet töltöttél a lasagna előkészítésével, feltéve, hogy egy réteg előkészítése 2 percet vesz igénybe.

func PreparationTime(numberOfLayers int) int {
    // TODO
}

PreparationTime(2)
// => 4

4. Számítsd ki az eltelt munkaidőt percben

Definiáld az ElapsedTime függvényt, amely két paramétert vár: az első paraméter a lasagnába rakott rétegek száma, a második pedig az, hogy hány perce van a lasagna a sütőben. A függvénynek vissza kell adnia, hogy összesen hány percet dolgoztál a lasagna elkészítésén, ami az előkészítési idő percben és a lasagna által a sütőben eddig eltöltött idő összege.

func ElapsedTime(numberOfLayers, actualMinutesInOven int) int {
    // TODO
}

ElapsedTime(3, 20)
// => 26
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Go Exercism

Készen állsz elkezdeni a(z) Gopher gyönyörű lasagnája feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Go nyelvet 35 fogalom167 feladat segítségével, valódi emberi mentorálással, mindez ingyen.