Elixir en Phoenix: schaalbare backendontwikkeling · Les

Basisedatatypen en operatoren

Ontdek fundamentele Elixir-datatypen zoals atoms, lijsten, tuples en maps en leer basisoperatoren te gebruiken.

Les 2 van 413 stappen

Basisedatatypen en operatoren is een gratis Elixir en Phoenix: schaalbare backendontwikkeling-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Elixir en Phoenix: schaalbare backendontwikkeling. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Elixir en Phoenix: schaalbare backendontwikkeling bevat in totaal 4 lessen.

Introductie tot gegevenstypen en operatoren

Elk programma steunt op gegevenstypen (wat je kunt opslaan) en operatoren (de symbolen die erop werken). Laten we kennismaken met de kern van Elixir.

Getallen: gehele getallen en kommagetallen

Elixir heeft twee getaltypen: gehele getallen zoals 42 en kommagetallen zoals 3.14. Standaardrekenkunde werkt met beide, zoals dit fragment laat zien.

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()

Booleans: true, false en nil

Waarheidswaarden zijn true en false. Let op nil voor "geen waarde" — en dat zowel false als nil als onwaar gelden; al het andere geldt als waar.

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()

Atomen: unieke identificatie

Een atoom is een constante waarvan de naam gelijk is aan de eigen waarde, zoals :ok. Atomen zijn snel te vergelijken en ideaal als statuscodes en sleutels van maps.

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()

Tekenreeksen: tekstgegevens

Een Elixir-tekenreeks is een UTF-8-binary tussen dubbele aanhalingstekens, zodat elke taal wordt ondersteund. Voeg tekenreeksen samen met de operator <>.

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()

Lijsten: geordende verzamelingen

Een lijst is een geordende verzameling tussen vierkante haakjes waarin typen kunnen worden gemengd. Dit is het werkpaard van functioneel programmeren en vooraan toevoegen gaat snel.

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()

Tupels: verzamelingen met vaste grootte

Een tupel is een verzameling met vaste grootte tussen accolades. Je ziet tupels overal voor gegroepeerde resultaten, zoals {:ok, result} of {: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()

Maps: sleutel-waardeparen

Een map bevat sleutel-waardeparen in %{} — meestal atoomsleutels voor snelheid. Gebruik een map wanneer je gestructureerde records of configuratie modelleert.

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()

Rekenkundige operatoren

Elixir biedt de gebruikelijke rekenkundige operatoren, plus div en rem voor gehele getallen. Let op: / geeft altijd een kommagetal terug.

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()

Vergelijkingsoperatoren

Vergelijkingsoperatoren geven een boolean terug. Gebruik == voor gelijkheid van waarden, maar === wanneer het type ook belangrijk is — 1 === 1.0 is false.

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()

Controleer je begrip

Bekijk het volgende Elixir-codefragment:

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

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

Wat is de uiteindelijke uitvoer van deze code?

Controleer je begrip (herzien)

Bekijk het volgende Elixir-codefragment:

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

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

Wat is de uiteindelijke uitvoer van deze code?

Samenvatting: gegevenstypen en operatoren

Samenvatting: gehele getallen en kommagetallen, booleans plus nil, atomen, tekenreeksen, lijsten, tupels, maps en de operatoren die ermee werken. Dit is de basis van Elixir.

Gratis beginnen

Leer Elixir met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “Basisedatatypen en operatoren” gratis?

Ja — de volledige tekst van “Basisedatatypen en operatoren” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Elixir en Phoenix: schaalbare backendontwikkeling wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Elixir en Phoenix: schaalbare backendontwikkeling bevat in totaal 4 lessen.

Wat leer ik in “Basisedatatypen en operatoren”?

Ontdek fundamentele Elixir-datatypen zoals atoms, lijsten, tuples en maps en leer basisoperatoren te gebruiken. Je oefent met Elixir en Phoenix: schaalbare backendontwikkeling door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Elixir en Phoenix: schaalbare backendontwikkeling te beginnen?

Ervaring vooraf is niet nodig. Elixir en Phoenix: schaalbare backendontwikkeling op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “Basisedatatypen en operatoren”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Elixir en Phoenix: schaalbare backendontwikkeling?

Ja. Elke les over Elixir en Phoenix: schaalbare backendontwikkeling bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Inleiding tot de programmeertaal Elixir
  2. Basisedatatypen en operatoren
  3. Pattern matching en control flow
  4. Strings, binaries en sigils in Elixir
← Terug naar Elixir en Phoenix: schaalbare backendontwikkeling