Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const range = struct {
- start: usize,
- stepsz: usize,
- end: usize,
- fn init(start_: usize, stepsz_: usize, end_: usize) @This() {
- return range {
- .start = start_,
- .stepsz = stepsz_,
- .end = end_
- };
- }
- fn next(self: *@This()) ?usize {
- if (self.start + self.stepsz <= self.end) {
- var ret = self.start;
- self.start += self.stepsz;
- return ret;
- }
- return null;
- }
- fn size(self: *@This()) usize {
- return (self.end - self.start) / self.stepsz;
- }
- };
- pub fn main() void {
- comptime var sum: usize = 0;
- comptime {
- var r = range.init(0, 10, 100);
- while(r.next()) |val| {
- sum += val;
- }
- }
- @import("std").debug.warn("sum = {}\n", sum);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement