подразумевается, что здесь может вылететь err_malloc или как оно? Ключевыми словами defer и errdefer помечается код, который чистит.
подразумевается что потом эти строчки подчистятся
Здесь нет оператора "+" на строках, но принцип должен быть понятен: pub fn render(allocator: std.mem.Allocator, registry: ag.CoreRegistry) !void { const filepath = try std.fmt.allocPrint( allocator, "src/codegen/abi/bindings/bytecode/{s}", .{registry.magic_number}, ); defer allocator.free(filepath); const file = try std.fs.cwd().createFile( filepath, .{ .read = true }, ); defer file.close(); try render_abi_bytecode_bindings(file, allocator, registry.contract_abi); }
Это пример кошмара, который хочется никогда не писать, и в C++ это как раз можно.
Обсуждают сегодня