A Go-ban a számokat a következő relációs és egyenlőségoperátorokkal hasonlíthatod össze.
| Összehasonlítás | Operátor |
|---|---|
| egyenlő | == |
| nem egyenlő | != |
| kisebb | < |
| kisebb vagy egyenlő | <= |
| nagyobb | > |
| nagyobb vagy egyenlő | >= |
Az összehasonlítás eredménye mindig egy Boolean érték, tehát vagy true, vagy false.
a := 3
a != 4 // true
a > 5 // false
A fenti összehasonlító operátorokkal stringeket is össze lehet hasonlítani. Ilyenkor lexikográfiai (szótári) sorrend érvényesül. Például:
"apple" < "banana" // true
"apple" > "banana" // false
A Go feltételes elágazásai hasonlók más nyelvekéhez.
Bármely feltételes művelet mögöttes típusa a bool típus, amelynek az értéke true vagy false lehet.
A feltételes elágazásokat gyakran vezérlési mechanizmusként használjuk különféle feltételek ellenőrzésére.
Egy adott eset ellenőrzésére if utasítást használhatsz, amely akkor futtatja a kódját, ha a mögöttes feltétel true, például így:
var value string
if value == "val" {
return "was val"
}
Ha egynél több esetről van szó, több if utasítást is összefűzhetsz az else if és az else utasításokkal.
var number int
result := "This number is "
if number > 0 {
result += "positive"
} else if number < 0 {
result += "negative"
} else {
result += "zero"
}
Az if utasítás tartalmazhat egy rövid kezdőérték-utasítást is, amellyel egy vagy több változót inicializálhatsz az if utasításhoz.
Például:
num := 7
if v := 2 * num; v > 10 {
fmt.Println(v)
} else {
fmt.Println(num)
}
// Output: 14
Megjegyzés: a kezdőérték-utasításban létrehozott változók az
ifutasítás végén kikerülnek a scope-ból.
Ebben a feladatban olyan kódot írsz, amely segít felkészülni egy jármű megvásárlására.
Három részfeladat vár rád: az egyikben eldöntöd, hogy kell-e jogosítvány, a másikban segítesz választani két jármű közül, a harmadikban pedig megbecsülöd egy használt jármű elfogadható árát.
Némelyik járműtípus vezetéséhez jogosítvány kell.
Tegyük fel, hogy csak a "car" és a "truck" típus vezetéséhez kell jogosítvány, minden mást jogosítvány nélkül is vezethetsz.
Valósítsd meg a NeedsLicense(kind) függvényt, amely átveszi a jármű fajtáját, és egy Boolean értéket ad vissza arról, hogy kell-e jogosítvány az adott fajtájú járműhöz.
needLicense := NeedsLicense("car")
// => true
needLicense = NeedsLicense("bike")
// => false
needLicense = NeedsLicense("truck")
// => true
Mérlegeled a rendelkezésre álló járműveket.
Végül két lehetőségre szűkíted a kört, de segítség kell a végső döntéshez.
Ehhez valósítsd meg a ChooseVehicle(option1, option2) függvényt, amely két járművet vesz át argumentumként, és olyan döntést ad vissza, amely tartalmazza azt a lehetőséget, amelyik lexikográfiai sorrendben előrébb van.
vehicle := ChooseVehicle("Wuling Hongguang", "Toyota Corolla")
// => "Toyota Corolla is clearly the better choice."
ChooseVehicle("Volkswagen Beetle", "Volkswagen Golf")
// => "Volkswagen Beetle is clearly the better choice."
Most, hogy döntöttél, biztos akarsz lenni benne, hogy tisztességes árat fizetsz a kereskedésben. Mivel használt járművet szeretnél venni, az ár attól függ, milyen idős a jármű. Durva becsléshez tegyük fel a következőket: ha a jármű kevesebb mint 3 éves, az ára az új kori eredeti ár 80%-a. Ha legalább 10 éves, az ára 50%. Ha a jármű legalább 3 éves, de kevesebb mint 10 éves, az ára az eredeti ár 70%-a.
Valósítsd meg a CalculateResellPrice(originalPrice, age) függvényt, amely ezt a logikát if, else if és else használatával alkalmazza (ha gyakorolni szeretnél, más megoldások is léteznek).
Az eredeti árat és a jármű korát veszi át argumentumként, és a kereskedésben becsült árat adja vissza.
CalculateResellPrice(1000, 1)
// => 800
CalculateResellPrice(1000, 5)
// => 700
CalculateResellPrice(1000, 15)
// => 500
Megjegyzés: a visszatérési érték float64.
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Go nyelvet 34 fogalom165 feladat segítségével, valódi emberi mentorálással, mindez ingyen.