Простые приложения на Nim
Простые приложения на Nim
Nim компилируется в C/C++/JS: синтаксис похож на Python, производительность — как у нативного кода. nim c -r app.nim для запуска.
Как запускать примеры из главы
- Команда:
nim c -r имя.nim(сборка и запуск). - Проверка:
nim --version.
Генератор паролей
Как запустить
- Файл:
password.nim - Команда:
nim c -r password.nim
import std/random, strutils
proc generatePassword(length = 16): string =
const chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
result = newString(length)
for i in 0 ..< length:
result[i] = chars[rand(chars.len)]
echo generatePassword()
Сортировщик файла
import std/[strutils, algorithm, os]
proc sortFile(input, output: string) =
let lines = readFile(input).splitLines().map(strip).filterIt(it.len > 0)
writeFile(output, lines.sorted().join("\n") & "\n")
JSON-трекер
import std/[json, os]
type Task = object
id: int
title: string
done: bool
proc load(path: string): seq[Task] =
if not fileExists(path): return @[]
let data = parseJson(readFile(path))
for item in data: result.add Task(
id: item["id"].getInt,
title: item["title"].getStr,
done: item["done"].getBool
)
HTTP (httpclient)
import std/httpclient
let client = newHttpClient()
echo client.getContent("https://example.com")[0..<200]
Характерный пример — макросы и result
proc wordCount(text: string): Table[string, int] =
result = initCountTable[string]()
for w in text.splitWhitespace():
result.inc(w)
result — неявная переменная возврата; initCountTable — идиоматичный подсчёт.
См. также: Python (близкий синтаксис)
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). История языка Nim - эволюция идеи «эффективности без потери выразительности» и развитие экосистемы. Основы языка Nim - синтаксис, типизация и принципы системного программирования с высокой производительностью. Архитектура компиляции и метапрограммирования Nim - этапы трансляции, AST и compile-time возможности. Типизация, набор правил определения типа данных значений языка. Управляющие конструкции и операторы Nim - переменные `let/var/const`, ветвления и контроль потока выполнения. Функции и макросы в Nim - объявление `proc`, метапрограммирование и расширение языка через compile-time механизмы. Гайд по установке и настройке с написанием первой программы и её запуском.История языка Nim
Основы языка Nim
Архитектура компиляции и метапрограммирования
Типы данных и шаблоны
Управляющие конструкции и операторы Nim
Функции и макросы
Первая программа на Nim