Difference between revisions of "Programming in D for Ruby Programmers"
m (O3o moved page Coming From/Ruby to Programming in D for Ruby Programmers) |
|||
Line 42: | Line 42: | ||
} | } | ||
</source> | </source> | ||
+ | |||
+ | [[Category:Languages versus D]] |
Revision as of 13:53, 15 April 2015
This page is under community development.
In the meantime, you may find the following links of interest as a Ruby programmer:
- Ruby Programmer shares his excitement about D
- forum discussion of post
- Jacob Carlborg writes on embedding Ruby in a D application
- David Oftedal writes on Project Euler problem 61: from Ruby to D
- forum posts on Ruby
Adding methods to existing classes / UFCS
In Ruby, it's possible to add methods to existing classes, even builtin ones:
class String
def underline
puts self
puts "=" * self.length
end
end
"Hello, world!".underline
# prints:
# Hello, world!
# =============
Because it uses a static compilation model, it's not possible to do exactly the same in D. However, D allows calling a free function as if it were a method, which mostly has the same effect from a caller's point of view, and has the additional advantage of not polluting the type's namespace:
void underline(string s) {
import std.stdio : writeln;
import std.range : repeat;
writeln(s);
writeln('='.repeat(s.length));
}
void main() {
"Hello, world!".underline();
}