GOLANG_INTERVIEW Telegram 1290
🚀 Zig показывает мощь метапрограммирования на компайм-тайме

Смотрите, как можно вызвать разные методы у разных структур, используя одно универсальное определение функции:


const std = @import("std");

const T = struct {
fn name() []const u8 {
return "foo";
}

fn foo() void {
std.debug.print("T.foo\n", .{});
}
};

const S = struct {
fn name() []const u8 {
return "bar";
}

fn bar() void {
std.debug.print("S.bar\n", .{});
}
};

fn f(Type: type) void {
@field(Type, Type.name())();
}

pub fn main() !void {
f(T); // <=> T.foo()
f(S); // <=> S.bar()
}
9❤‍🔥4🔥1



tgoop.com/golang_interview/1290
Create:
Last Update:

🚀 Zig показывает мощь метапрограммирования на компайм-тайме

Смотрите, как можно вызвать разные методы у разных структур, используя одно универсальное определение функции:


const std = @import("std");

const T = struct {
fn name() []const u8 {
return "foo";
}

fn foo() void {
std.debug.print("T.foo\n", .{});
}
};

const S = struct {
fn name() []const u8 {
return "bar";
}

fn bar() void {
std.debug.print("S.bar\n", .{});
}
};

fn f(Type: type) void {
@field(Type, Type.name())();
}

pub fn main() !void {
f(T); // <=> T.foo()
f(S); // <=> S.bar()
}

BY Golang вопросы собеседований




Share with your friend now:
tgoop.com/golang_interview/1290

View MORE
Open in Telegram


Telegram News

Date: |

Your posting frequency depends on the topic of your channel. If you have a news channel, it’s OK to publish new content every day (or even every hour). For other industries, stick with 2-3 large posts a week. 1What is Telegram Channels? How to create a business channel on Telegram? (Tutorial) 2How to set up a Telegram channel? (A step-by-step tutorial) Some Telegram Channels content management tips
from us


Telegram Golang вопросы собеседований
FROM American