Switch in Miranda

Based on the specifications provided, the target language extracted from miranda is Python. Below is the Markdown formatted translation of the original Go code example to Python, with appropriate explanations.


Switch statements express conditionals across many branches.

Here’s a basic switch.

i = 2
print("Write", i, "as", end=" ")

if i == 1:
    print("one")
elif i == 2:
    print("two")
elif i == 3:
    print("three")

You can use commas to separate multiple expressions in the same case statement. We use the optional default case in this example as well.

import datetime

today = datetime.datetime.now().weekday()

if today in [5, 6]:  # Saturday or Sunday
    print("It's the weekend")
else:
    print("It's a weekday")

switch without an expression is an alternate way to express if/else logic. Here we also show how the case expressions can be non-constants.

t = datetime.datetime.now()

if t.hour < 12:
    print("It's before noon")
else:
    print("It's after noon")

A type switch compares types instead of values. You can use this to discover the type of an interface value. In this example, the variable t will have the type corresponding to its clause.

def what_am_i(i):
    if isinstance(i, bool):
        print("I'm a bool")
    elif isinstance(i, int):
        print("I'm an int")
    else:
        print(f"Don't know type {type(i).__name__}")

what_am_i(True)
what_am_i(1)
what_am_i("hey")
$ python switch.py
Write 2 as two
It's a weekday
It's after noon
I'm a bool
I'm an int
Don't know type str

Next example: Arrays