Elixir ja Phoenix: skaalautuva backend-kehitys · Oppitunti

Perustietotyypit ja operaattorit

Tutustukaa Elixirin perustietotyyppeihin, kuten atomeihin, listoihin, monikoihin ja karttoihin, sekä oppikaa käyttämään perusoperaattoreita.

Oppitunti 2/413 vaihetta

Perustietotyypit ja operaattorit on ilmainen Elixir ja Phoenix: skaalautuva backend-kehitys-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Elixir ja Phoenix: skaalautuva backend-kehitys-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Elixir ja Phoenix: skaalautuva backend-kehitys-kurssilla on yhteensä 4 oppituntia.

Tietotyypit ja operaattorit: johdanto

Jokainen ohjelma perustuu tietotyyppeihin (mitä voitte tallentaa) ja operaattoreihin (symboleihin, jotka käsittelevät tietoja). Tutustutaan Elixirin ydinkäsitteisiin.

Luvut: kokonaisluvut ja liukuluvut

Elixirissä on kaksi lukutyyppiä: kokonaisluvut, kuten 42, ja liukuluvut, kuten 3.14. Tavalliset laskutoimitukset toimivat molemmilla, kuten tämä koodiesimerkki osoittaa.

defmodule NumbersDemo do
  def run() do
    integer_num = 42
    float_num = 3.14159

    IO.puts "Integer: #{integer_num}"
    IO.puts "Float: #{float_num}"
    IO.puts "Sum: #{integer_num + 10.0}"
  end
end

NumbersDemo.run()

Totuusarvot: true, false ja nil

Totuusarvot ovat true ja false. Huomioikaa myös nil, joka tarkoittaa ”ei arvoa” — sekä se, että sekä false että nil tulkitaan epätosiksi; kaikki muu tulkitaan todeksi.

defmodule BooleansDemo do
  def run() do
    is_active = true
    has_error = false
    no_value = nil

    IO.puts "Is Active? #{is_active}"
    IO.puts "Has Error? #{has_error}"
    IO.puts "No Value? #{no_value}"

    if no_value do
      IO.puts "This won't print."
    else
      IO.puts "nil is falsy!"
    end
  end
end

BooleansDemo.run()

Atomit: yksilölliset tunnisteet

Atom on vakio, jonka nimi on sen oma arvo, kuten :ok. Atomeja on nopea verrata, ja ne sopivat erinomaisesti tilakoodeiksi ja map-rakenteiden avaimiksi.

defmodule AtomsDemo do
  def run() do
    status = :ok
    type = :user

    IO.puts "Current status: #{status}"
    IO.puts "User type: #{type}"

    if status == :ok do
      IO.puts "Operation successful!"
    end
  end
end

AtomsDemo.run()

Merkkijonot: tekstimuotoinen data

Elixirin merkkijono on lainausmerkkien sisällä oleva UTF-8-binääri, joten se käsittelee kaikkia kieliä. Yhdistäkää merkkijonoja <>-operaattorilla.

defmodule StringsDemo do
  def run() do
    greeting = "Hello"
    name = "CoddyKit"
    message = greeting <> ", " <> name <> "!"

    IO.puts message
    IO.puts "String length: " <> to_string(String.length(message))
  end
end

StringsDemo.run()

Listat: järjestetyt kokoelmat

Lista on järjestetty, hakasulkeilla rajattu kokoelma, joka voi sisältää eri tyyppejä. Se on funktionaalisen ohjelmoinnin monikäyttöinen työväline, jonka alkuun on nopea lisätä alkioita.

defmodule ListsDemo do
  def run() do
    my_list = [1, 2, 3, :hello, "world"]
    another_list = [4, 5]

    IO.puts "Original list: " <> inspect(my_list)
    IO.puts "Concatenated list: " <> inspect(my_list ++ another_list)
    IO.puts "Head of list: " <> inspect(hd(my_list))
    IO.puts "Tail of list: " <> inspect(tl(my_list))
  end
end

ListsDemo.run()

Tuplat: kiinteän kokoiset kokoelmat

Tupla on aaltosulkeilla rajattu, kiinteän kokoinen kokoelma. Niitä käytetään kaikkialla ryhmiteltyjen palautusarvojen kanssa, kuten {:ok, result} tai {:error, reason}.

defmodule TuplesDemo do
  def run() do
    person_info = {"Alice", 30, :female}
    result_tuple = {:ok, "Data fetched"}

    IO.puts "Person: " <> inspect(person_info)
    IO.puts "Result: " <> inspect(result_tuple)

    # Accessing elements (0-indexed)
    IO.puts "Name: " <> elem(person_info, 0)
  end
end

TuplesDemo.run()

Mapit: avain–arvo-parit

Map sisältää avain–arvo-pareja muodossa %{} — yleensä atomiavaimilla nopeuden vuoksi. Käyttäkää map-rakennetta aina, kun mallinnatte rakenteisia tietueita tai asetuksia.

defmodule MapsDemo do
  def run() do
    user = %{name: "Bob", age: 25, city: "New York"}

    IO.puts "User: " <> inspect(user)
    IO.puts "User's name: #{user.name}"

    # Updating a map
    updated_user = %{user | age: 26}
    IO.puts "Updated age: #{updated_user.age}"
  end
end

MapsDemo.run()

Aritmeettiset operaattorit

Elixir tarjoaa tavalliset aritmeettiset operaattorit sekä kokonaislukujen käsittelyyn operaattorit div ja rem. Huomioikaa, että / palauttaa aina liukuluvun.

defmodule ArithmeticDemo do
  def run() do
    IO.puts "5 + 3 = #{5 + 3}"
    IO.puts "10 - 4 = #{10 - 4}"
    IO.puts "6 * 7 = #{6 * 7}"
    IO.puts "10 / 3 = #{10 / 3}"  # Float division
    IO.puts "10 div 3 = #{10 div 3}" # Integer division
    IO.puts "10 rem 3 = #{10 rem 3}" # Remainder
  end
end

ArithmeticDemo.run()

Vertailuoperaattorit

Vertailuoperaattorit palauttavat totuusarvon. Käyttäkää arvojen yhtäsuuruuteen operaattoria ==, mutta silloin kun myös tyypillä on merkitystä, käyttäkää operaattoria === — 1 === 1.0 on epätosi.

defmodule ComparisonDemo do
  def run() do
    IO.puts "5 == 5: #{5 == 5}"
    IO.puts "5 != 10: #{5 != 10}"
    IO.puts "5 < 10: #{5 < 10}"
    IO.puts "10 >= 10: #{10 >= 10}"
    IO.puts "1 == 1.0: #{1 == 1.0}" # True (value equality)
    IO.puts "1 === 1.0: #{1 === 1.0}" # False (type strictness)
  end
end

ComparisonDemo.run()

Testaa ymmärryksesi

Tarkastelkaa seuraavaa Elixir-koodiesimerkkiä:

result = 10 div 3
status = :ok
message = "Value is #{result}"
comparison = (result > 3) == true

IO.puts "#{message}, Status: #{status}, Comparison: #{comparison}"

Mikä on tämän koodin lopullinen tuloste?

Testaa ymmärryksesi (päivitetty)

Tarkastelkaa seuraavaa Elixir-koodiesimerkkiä:

result = 10 div 3
status = :ok
message = "Value is #{result}"
comparison = (result > 3)

IO.puts "#{message}, Status: #{status}, Comparison: #{comparison}"

Mikä on tämän koodin lopullinen tuloste?

Kertaus: tietotyypit ja operaattorit

Kertaus: kokonaisluvut ja liukuluvut, totuusarvot ja nil, atomit, merkkijonot, listat, tuplat, mapit sekä niitä käsittelevät operaattorit. Näistä muodostuu Elixir-osaamisenne perusta.

Aloita maksutta

Opi Elixir tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Perustietotyypit ja operaattorit” ilmainen?

Kyllä – oppitunnin ”Perustietotyypit ja operaattorit” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Elixir ja Phoenix: skaalautuva backend-kehitys-kurssin, päivitä CoddyKit PROhon. Elixir ja Phoenix: skaalautuva backend-kehitys-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Perustietotyypit ja operaattorit”?

Tutustukaa Elixirin perustietotyyppeihin, kuten atomeihin, listoihin, monikoihin ja karttoihin, sekä oppikaa käyttämään perusoperaattoreita. Harjoittelet Elixir ja Phoenix: skaalautuva backend-kehitys-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Elixir ja Phoenix: skaalautuva backend-kehitys-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Elixir ja Phoenix: skaalautuva backend-kehitys-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Perustietotyypit ja operaattorit”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Elixir ja Phoenix: skaalautuva backend-kehitys-oppitunnilla?

Kyllä. Jokainen Elixir ja Phoenix: skaalautuva backend-kehitys-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Elixir-kielen esittely
  2. Perustietotyypit ja operaattorit
  3. Hahmonsovitus ja ohjausvirta
  4. Merkkijonot, binäärit ja sigilit Elixirissä
← Takaisin: Elixir ja Phoenix: skaalautuva backend-kehitys