ChatCrawlerпоиск по публичному Telegram Открыть приложение
[

[RU] Язык Zig (чат)

сообщение · 2026-07-11 10:31 UTC
I
Ответсообщение недоступно
До релиза осталось 0.83.0 версий! 💡 Мысли вслух: как мог бы выглядеть родной Borrow Checker в Zig? 🔑 Главная идея: Lifetimes как comptime Scope 1. Функции с лайфтаймами fn choose( comptime lt: std.builtin.Scope, x: *scope(lt) const i32, y: *scope(lt) const i32, ) *scope(lt) const i32 { return if (x.* == y.*) x else y; } 2. Структуры, хранящие ссылки fn Parser(comptime lt: std.builtin.Scope) type { return struct { text: *scope(lt) const []const u8, pos: usize, }; } // Использование: const text = "hello"; var p = Parser(@scopeOf(text)){ .text = &text, .pos = 0, }; 3. Проверка правил (Aliasing) var data: i32 = 42; const r1: *scopeOf(data) const i32 = &data; // Ошибка компиляции: нельзя взять изменяемую ссылку, // пока жива константная r1 var mut_r = &data; 4. Отношение «одно время жизни длиннее другого» (Outlives) fn processData( comptime lt_inner: std.builtin.Scope, comptime lt_outer: std.builtin.Scope, inner: *scope(lt_inner) const Data, outer: *scope(lt_outer) const Data, ) void { // Явное и понятное требование: lt_outer должен жить дольше или столько же, сколько lt_inner comptime { @compileDeclare(lt_outer.outlives(lt_inner)); } // ... } Как вам такой концепт? Имеет право на жизнь в альтернативной вселенной Zig 1.0? 👇

Вся лента · оригинал в Telegram

Открыть в Telegram Каталог площадок Искать в ChatCrawler

Слепок открытой публичной ленты из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог