Sorting Strings in Zig
Related
More from openmymind.net
Software developers are often evaluated based on how well they understand specific ideas and tools. While mastery is important, there's another type of knowledge I find myself relying on: vague awareness. Unlike mastery, awareness is merely knowing that something exists along with a basic understanding of what it is and what problem it can solve....
If I asked you to respond to an HTTP request with a JSON serialize list of products, somewhere in your code, you'd probably have (or whatever the equivalent is in your stack): body, err := json.Marshal(products) There's an alternative to this approach that I'm rather fond of: gluing pre-serialized JSON pieces together: if (len(productJSON)) == 0...
A recently merged pull request removed anonymous struct from Zig. I was surprised by this change - it seemed like a big deal. But it turns out that I didn't understand what an anonymous struct were, and this change isn't quite as big as I thought. Consider this code: const std = @import("std"); pub fn main() !void { const user = .{.id = 2,...
In the following code, we create a Post structure with a skeleton format method. Despite being pretty comfortable with Zig, I could stare at this code for hours and not realize that it has two issues. pub fn main() !void { } const Post = struct { raw: []const u8, pub fn format(self: Post, format: Format) void { _ = self; _...
In the last post, we looked at some of Zig' weirder syntax. Specifically, this line of code: var gpa = std.heap.GeneralPurposeAllocator(.{}){}; While you'll commonly run into the above when looking at Zig code or going through Zig learning resources, some people pointed out that the code could be improved by doing: var gpa:...