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
Wichtige Standardmodule
| Modul | Zweck |
|---|---|
system | Grundfunktionen (automatisch importiert) |
strutils | Textfunktionen |
sequtils | Sequenzoperationen |
tables, sets | Hash-Maps und Mengen |
math, random | Mathematik, Zufall |
os, osproc | Dateien, Prozesse |
json, parsecsv | Datenformate |
times | Zeit und Datum |
strformat | fmt"..." |
options, asyncdispatch | Option, asynchrone I/O |
unittest | Tests |
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 > 0Ausgabe:
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
trueTypische Fehler
let x: int = "text"Fehlermeldung:
type mismatchecho unbekanntFehlermeldung:
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;nimbleverwaltet 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
Welches Werkzeug verwaltet Nim-Pakete?
- nimble (richtig)
- pip
- cargo
- npm
Welcher Schalter erzeugt optimierten Code?
- -d:release (richtig)
- —fast
- -O
- —opt
Welche Einrückung ist in Nim erlaubt?
- Leerzeichen (keine Tabs) (richtig)
- Tabs
- Beides
- Gar keine
Weiter im Kurs
Zurück: Praxisprojekte
Alle Kapitel: Nim im Überblick