Introduction

int variable_name_that_is_a_number 
variable = 2 variable = “2

How does it work?

sig {params(x: SomeType, y: SomeOtherType).returns(MyReturnType)} def foo(x, y); ...; end 
class User   attr_reader login: String   attr_reader email: String   def initialize: (login: String, email: String) -> void end class Bot   attr_reader name: String   attr_reader email: String   attr_reader owner: User   def initialize: (name: String, owner: User) -> void end 

Metaprogramming & overloading

sig {params(x: String).returns(MyReturnType)} sig {params(x: Integer, y: Integer).returns(MyReturnType)}def foo(x, y = 0); ...; end 
def foo: (x: String | Integer, y: Integer) -> MyReturnType | MyOtherReturnType 
-> singleton(MyReturnType) 

Summary/What does the future hold?

Categories: programming languages