control_flow/case_type_basic.rb

tests/_examples/control_flow/case_type_basic.rb in the metorex repository.

# Basic type pattern matching
# Type patterns match based on the runtime type of values

# Integer type
value = 42
case value
when Integer
  puts "It's an integer"
else
  puts "Not an integer"
end

# String type
value = "hello"
case value
when String
  puts "It's a string"
else
  puts "Not a string"
end

# Array type
value = [1, 2, 3]
case value
when Array
  puts "It's an array"
else
  puts "Not an array"
end

# Hash type
value = {"key" => "value"}
case value
when Hash
  puts "It's a hash"
else
  puts "Not a hash"
end

# Multiple type patterns
value = 3.14
case value
when Integer
  puts "Integer"
when Float
  puts "Float"
when String
  puts "String"
else
  puts "Unknown type"
end

Output:

It's an integer
It's a string
It's an array
It's a hash
Float