Issue #5583 has been updated by Thomas Sawyer.
@matz
(a) plenty of other ways to define syntax. maybe best way is to separate it from def since it is optional, e.g.
sig foo(String)
def foo(string)
...
end
(b) not sure how it can honor duck typing. i think the whole idea is to (optionally) roast the duck!
----------------------------------------
Feature #5583: Optionally typing
http://redmine.ruby-lang.org/issues/5583
Author: Yasushi ANDO
Status: Open
Priority: Normal
Assignee:
Category:
Target version:
Although I know all of you dislike static typing it cannot be denied that there are some people aspire for introducing it in ruby. The dartlang solved the problem in unique way called Optionally Typing. In Dart you can declare types for variables but they are ignored by the compiler with default options.
It looks superb idea for me so that I introduced the optionally typing to ruby as a trial. You can write types for variables if you want then the ruby completely ignores these dirts.
Sample code:
def method(arg)
arg
end
def typed_method(arg) : String
arg
end
def fully_typed_method(arg : String) : String
arg
end
var = 'var'
puts var
var_with_type : String = 'var_with_type'
puts var_with_type
var_from_method : String = typed_method('var_from_method')
puts var_from_method
@ivar : String = fully_typed_method('@ivar')
puts @ivar
Results:
$ ./truby -Ilib -I. truby_test.rb
var
var_with_type
var_from_method
@ivar
I attached my poor patch. Thanks for your consideration.
--
http://redmine.ruby-lang.org