Kurzusok
/
Elixir
Elixir
/
Feladatok
/
Sebesség kell
Sebesség kell

Sebesség kell

Tanulófeladat

Bevezetés

Alias

Ahhoz, hogy egy projekten belül kódot ossz meg különböző Elixir-modulok között, a külső modulra a teljes nevével kell hivatkoznod. De mi van, ha ez a név túl hosszú vagy zavaró?

Az alias speciális forma lehetővé teszi, hogy lerövidítsd vagy megváltoztasd azt a nevet, amellyel egy külső modulra hivatkozol. Ha argumentumok nélkül használod, a modulnevet az utolsó szegmensére rövidíti, például a MyApp.Logger.Settings névből Settings lesz. Egyéni nevet a :as opcióval adhatsz meg.

Az aliasokat általában a moduldefiníció elején adod hozzá.

defmodule Square do
  alias Integer, as: I

  def area(a), do: I.pow(a, 2)
end

Import

Az import speciális forma lehetővé teszi, hogy egy külső modul függvényeit a modul nevének említése nélkül használd.

Egy teljes külső modul importálása ütközéseket okozhat a meglévő helyi függvényekkel. Ennek elkerülésére két opció áll rendelkezésre: az :except és az :only. Mindkettő egy kulcsszólistát vár, amelyben a kulcs a függvény neve, az érték pedig a függvény aritása.

Az importokat általában a moduldefiníció elején adod hozzá.

defmodule Square do
  import Integer, only: [pow: 2]

  def area(a), do: pow(a, 2)
end

Utasítások

A nemrég vásárolt távirányítós autódból egész új hobbi lett. Távirányítós autóversenyeket szervezel.

Majdnem kész voltál egy programmal, amivel versenyszimulációkat lehet futtatni, amikor a macskád ráugrott a billentyűzetre, és törölt néhány sornyi kódot. Most a programod már nem fordul le...

1. Javítsd a Race.__struct__/0 is undefined fordítási hibát

Adj hozzá egy aliast, hogy a NeedForSpeed.Race modulra a rövidebb Race néven is hivatkozhass.

2. Javítsd a Car.__struct__/0 is undefined fordítási hibát

Adj hozzá egy aliast, hogy a NeedForSpeed.RemoteControlCar modulra a rövidebb Car néven is hivatkozhass.

3. Javítsd az undefined function puts/1 fordítási hibát

A puts/1 függvény az IO modulból származik. Importáld, hogy a modulra való hivatkozás nélkül is használhasd.

4. Javítsd az undefined function default_color/0 fordítási hibát

A default_color/0, red/0, cyan/0 és green/0 függvény mind az IO.ANSI modulból származik. Szeretnéd más autószínek támogatását is hozzáadni, ezért az egész modult importálni akarod. Sajnos az IO.ANSI modul color/1 függvénye ütközik az egyik helyi függvényeddel. Az egész IO.ANSI modult importáld, kivéve azt az egy függvényt.

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

Készen állsz elkezdeni a(z) Sebesség kell feladatot?

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