Elixir och Phoenix: skalbar backendutveckling · Lektion

Grundläggande datatyper och operatorer

Utforska grundläggande Elixir-datatyper som atomer, listor, tupler och mappar samt lär dig använda grundläggande operatorer.

Lektion 2 av 413 steg

Grundläggande datatyper och operatorer är en gratis lektion i Elixir och Phoenix: skalbar backendutveckling på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Elixir och Phoenix: skalbar backendutveckling, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Elixir och Phoenix: skalbar backendutveckling innehåller totalt 4 lektioner.

Introduktion till datatyper och operatorer

Alla program bygger på datatyper (vad du kan lagra) och operatorer (symbolerna som arbetar med dem). Låt oss bekanta oss med Elixirs grunder.

Tal: heltal och flyttal

Elixir har två taltyper: heltal som 42 och flyttal som 3.14. Vanlig matematik fungerar för båda, vilket detta kodexempel visar.

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

Booleska värden: true, false, nil

Sanningsvärdena är true och false. Lägg märke till nil för ”inget värde” — och att både false och nil är falsy; allt annat är truthy.

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

Atomer: unika identifierare

En atom är en konstant vars namn är dess eget värde, som :ok. De är snabba att jämföra och idealiska som statuskoder och nycklar i mappar.

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

Strängar: textdata

En sträng i Elixir är en UTF-8-binär inom dubbla citattecken, så den hanterar alla språk. Slå ihop strängar med operatorn <>.

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

Listor: ordnade samlingar

En lista är en ordnad samling inom hakparenteser som kan blanda datatyper. Den är det funktionella arbetshästverktyget och snabb att lägga till element först i.

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

Tupler: samlingar med fast storlek

En tupel är en samling med fast storlek inom klammerparenteser. Du ser dem överallt för grupperade returvärden, som {:ok, result} eller {: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()

Mappar: nyckel-värde-par

En mapp innehåller nyckel-värde-par i %{} — vanligtvis atomnycklar för högre hastighet. Använd den när du modellerar strukturerade poster eller konfiguration.

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

Aritmetiska operatorer

Elixir ger dig de vanliga aritmetiska operatorerna samt div och rem för heltal. Observera: / returnerar alltid ett flyttal.

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

Jämförelseoperatorer

Jämförelseoperatorer returnerar ett booleskt värde. Använd == för likhet mellan värden, men === när även typen spelar roll — 1 === 1.0 är 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()

Kontrollera dina kunskaper

Betrakta följande Elixir-kodexempel:

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

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

Vad blir den slutliga utskriften från denna kod?

Kontrollera dina kunskaper (reviderad)

Betrakta följande Elixir-kodexempel:

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

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

Vad blir den slutliga utskriften från denna kod?

Sammanfattning: Datatyper och operatorer

Sammanfattning: heltal och flyttal, booleska värden samt nil, atomer, strängar, listor, tupler, mappar och operatorerna som används med dem. Detta är grunden i Elixir.

Gratis att börja

Lär dig Elixir med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”Grundläggande datatyper och operatorer” gratis?

Ja – hela texten till ”Grundläggande datatyper och operatorer” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Elixir och Phoenix: skalbar backendutveckling, kan Ni uppgradera till CoddyKit PRO. Kursen i Elixir och Phoenix: skalbar backendutveckling innehåller totalt 4 lektioner.

Vad lär jag mig i ”Grundläggande datatyper och operatorer”?

Utforska grundläggande Elixir-datatyper som atomer, listor, tupler och mappar samt lär dig använda grundläggande operatorer. Ni övar på Elixir och Phoenix: skalbar backendutveckling med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Elixir och Phoenix: skalbar backendutveckling?

Du behöver inga förkunskaper. Utbildningen i Elixir och Phoenix: skalbar backendutveckling på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”Grundläggande datatyper och operatorer”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Elixir och Phoenix: skalbar backendutveckling-lektionen?

Ja. Varje Elixir och Phoenix: skalbar backendutveckling-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Introduktion till Elixir-språket
  2. Grundläggande datatyper och operatorer
  3. Mönstermatchning och styrflöde
  4. Strängar, binärer och sigiller i Elixir
← Tillbaka till Elixir och Phoenix: skalbar backendutveckling