import stdio import t, c def add(a: int, b: int) -> int: return a + b def mul(a: int, b: int) -> int: return a * b def square(x: int) -> int: return mul(x, x) def factorial(n: int) -> int: if n <= 1: return 1 return n * factorial(n - 1) def greet(greeting: str, name: str, times: int) -> int: i: int = 0 while i < times: stdio.printf("%s, %s!\n", greeting, name) i = i + 1 return times def sub(a: int, b: int) -> int: return a - b def func_test() -> int: r1: int = add(3, 4) stdio.printf("add(3,4)=%d\n", r1) r2: int = mul(5, 6) stdio.printf("mul(5,6)=%d\n", r2) r3: int = square(7) stdio.printf("square(7)=%d\n", r3) r5: int = factorial(5) stdio.printf("factorial(5)=%d\n", r5) # ============================================================ # 测试: 函数乱序传参(关键字参数) # ============================================================ # 乱序传参:b=4, a=3 等价于 add(3, 4) r6: int = add(b=4, a=3) stdio.printf("add(b=4,a=3)=%d\n", r6) # 乱序传参:a=10, b=3 等价于 sub(10, 3) r7: int = sub(b=3, a=10) stdio.printf("sub(b=3,a=10)=%d\n", r7) # 混合传参:位置参数 + 关键字参数 # greeting="Hello" 是位置参数,name="World" 和 times=2 是关键字 r8: int = greet("Hello", name="World", times=2) stdio.printf("greet mixed: returned=%d\n", r8) # 全关键字乱序传参 r9: int = greet(times=1, name="TransPyC", greeting="Hi") stdio.printf("greet kwargs: returned=%d\n", r9) return 0