golang中函数可以有多个返回值,python可以吗,答案是肯定的。
import math
def move(x, y, step, angle=0):
nx = x + step*math.cos(angle)
ny = y - step*math.sin(angle)
return nx, ny
x, y = move(100, 100, 60, math.pi/6)
print(x, y)
运行结果:
E:\python_study>python 1.py
(151.96152422706632, 70.0)
但其实这是一种假象,函数返回的仍然是单一值:
import math
def move(x, y, step, angle=0):
nx = x + step*math.cos(angle)
ny = y - step*math.sin(angle)
return nx, ny
x, y = move(100, 100, 60, math.pi/6)
print(x, y)
val = move(100, 100, 60, math.pi/6)
print(val)
运行结果:
E:\python_study>python 1.py
(151.96152422706632, 70.0)
(151.96152422706632, 70.0)
原来:函数返回值是单个tuple,只是多个变量可以同时接收一个tuple,并按位置赋值。所以python的函数多返回值其实是假的。
而golang由于是强类型语言,函数调用的接收个数和函数返回值个数必须一致,所以不存在这个现象。
参考:定义函数