EMZETT.
Login

Kurz: randomize(42) let r = rand(1..6) echo r in 1..6 echo “Zeit: ”, initDuration(minutes = 135).inHours echo dateTime(2024, mMar, 15, 14, 30, zone = utc()).format(“yyyy-MM-dd HH:mm”) echo (dateTime(2024, mMar, 15, zone = utc()) +.

Teil des Kurses Nim

Kapitel 8 von 8 im Kurs Nim. Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.

Wichtige Standardmodule

ModulZweck
systemGrundfunktionen (automatisch importiert)
strutilsTextfunktionen
sequtilsSequenzoperationen
tables, setsHash-Maps und Mengen
math, randomMathematik, Zufall
os, osprocDateien, Prozesse
json, parsecsvDatenformate
timesZeit und Datum
strformatfmt"..."
options, asyncdispatchOption, asynchrone I/O
unittestTests
import std/[math, times, random, strutils]
 
randomize(42)
let r = rand(1..6)
echo r in 1..6
echo "Zeit: ", initDuration(minutes = 135).inHours
echo dateTime(2024, mMar, 15, 14, 30, zone = utc()).format("yyyy-MM-dd HH:mm")
echo (dateTime(2024, mMar, 15, zone = utc()) + 20.days).format("dd'.'MM'.'yyyy")
echo isLeapYear(2024), " ", getDaysInMonth(mFeb, 2024)
echo sum([1, 2, 3]), " ", sum([1.0, 2.0, 3.0]) / 3.0, " ", pow(2.0, 8.0)
echo "$1 von $2" % ["3", "5"]
echo $(1, "a"), " ", $[1, 2], " ", $true
echo repr(42)
echo sizeof(int), " ", sizeof(int32), " ", sizeof(char)
echo NimVersion.len > 0

Ausgabe:

true
Zeit: 2
2024-03-15 14:30
04.04.2024
true 29
6 2.0 256.0
3 von 5
(1, "a") [1, 2] true
42
8 4 1
true

Typische Fehler

let x: int = "text"

Fehlermeldung:

type mismatch
echo unbekannt

Fehlermeldung:

undeclared identifier: 'unbekannt'

Achtung

Nim ist stil-insensitiv, aber Tabs sind verboten: Einrückungen bestehen aus Leerzeichen. Die Standardeinrückung beträgt zwei Leerzeichen.

Weiterführende Quellen

  • nim-lang.org/docs: Handbuch und Standardbibliothek
  • „Nim in Action“ (Dominik Picheta)
  • nim-by-example.github.io: kurze Beispiele
  • forum.nim-lang.org: Community

Merke

  • Nim: Python-Syntax, C-Geschwindigkeit, mächtige Makros
  • nim c -r übersetzt und startet; nimble verwaltet Pakete
  • Typen, Generics und Templates machen Code kurz und sicher

Übungsaufgabe

Portiere ein kleines Python-Skript nach Nim und vergleiche Laufzeit und Dateigröße.

Quiz zur Selbstkontrolle

Weiter im Kurs

Zurück: Praxisprojekte

Alle Kapitel: Nim im Überblick