type_annotations/collection_types.rb

tests/_examples/type_annotations/collection_types.rb in the metorex repository.

numbers = [1, 2, 3, 4, 5]  # list
puts "numbers = #{numbers}"

scores = {"Alice" => 90, "Bob" => 85}  # dict
puts "scores = #{scores}"

def process_list(items)  # list -> int
  items.length
end

def get_score(grades, name)  # dict, str -> int
  grades[name]
end

puts "length of numbers: #{process_list(numbers)}"
puts "Alice's score: #{get_score(scores, "Alice")}"

Output:

numbers = [1, 2, 3, 4, 5]
scores = {"Alice" => 90, "Bob" => 85}
length of numbers: 5
Alice's score: 90