Kurzusok
/
Cairo
Cairo
/
Feladatok
/
Piros kontra kék: darwini stílusban
Piros kontra kék: darwini stílusban

Piros kontra kék: darwini stílusban

Tanulófeladat

Bevezetés

Modulok

A modulokkal összetartozó kódot csoportosíthatsz, elkerülheted a névütközéseket, és általában minden nem triviális kódbázisban megtalálhatók.

A szintaxis a következő:

mod my_module {
    pub struct MyStruct {}

    pub struct OtherClass {}
}

A modul scope-ján kívül a modulba zárt típusokra úgy hivatkozunk, hogy a típusnév elé a dupla kettőspont :: szintaxist tesszük. Másik lehetőség, és általában ez a szokásosabb, hogy a fájl elejére (vagy egy modulon belülre) egy use direktívát teszel, és akkor a típusok előtag nélkül használhatók. Ugyanazon a modulon belül nincs szükség a típusnevek minősítésére.

mod my_module {
    #[derive(Drop)]
    pub struct MyStruct {}

    pub struct Foo {}

    #[generate_trait]
    pub impl FooImpl of FooTrait {
        fn bar() {
            let baz = MyStruct {};
        }
    }
}

#[derive(Drop)]
pub struct Qux {}

#[generate_trait]
impl QuxImpl of QuxTrait {
    fn box() {
        let nux = my_module::MyStruct {};
    }
}

mod other_module {
    use super::my_module::*;

    #[derive(Drop)]
    pub struct Tix {}

    #[generate_trait]
    pub impl TixImpl of TixTrait {
        fn jeg() {
            let lor = MyStruct {};
        }
    }
}

Egy modult vagy típust a use core::array::ArrayTrait as Arr; szintaxissal nevezhetsz át, majd az aliast bárhol használhatod, ahol a modult vagy a típust lehetne.

Utasítások

A vezetőség elkezdte a darwini elveket alkalmazni egy távirányítós autós projektre. A fejlesztőket két csapatra osztották, Red és Blue, és azzal a feladattal bízták meg őket, hogy egymástól függetlenül fejlesszék a tervezést. Nem kell törődniük a másik csapat tervezési döntéseivel. Téged arra kértek, hogy vess egy pillantást a kódra, és nézd meg, hogyan tudnád a legjobban összevonni a két erőfeszítést tesztelési célból.

1. Találj megfelelőbb módot a két csapat kódjának elkülönítésére

Kérlek, használj modulokat, hogy pontosabban kifejezd a kód szándékát.

Jelenleg az olyan fontos típusok, mint a Motor és a Telemetry, sőt maga a RemoteControlCar is, a megfelelő csapat színének megfelelő <Color>RemoteControlCarTeam előtaggal vannak ellátva. Az előtag egyetlen célja, hogy ugyanolyan nevű típusok létezhessenek egymás mellett a programban. Ezt sokkal jobban kifejezi egy modul használata. Látni fogod, hogy erre a célra a modul előnyösebb, mint a típusok előtagolása.

2. Egyszerűsítsd az elnevezési rendszert

A vezetőség megköveteli, hogy a definíciókban a csapatok neve „Red Remote Control Car Team” és „Blue Remote Control Car Team” legyen, és hogy ezeket a hosszú neveket még magában a kódban is használni kell. A nevek azonban meglehetősen nehézkesek, amikor a csapatokra hivatkozunk.

Találj módot arra, hogy a rövidebb „Red” és „Blue” azonosítókat használd abban a modulban, amelyben az autókat építed majd.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Cairo Exercism

Készen állsz elkezdeni a(z) Piros kontra kék: darwini stílusban feladatot?

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