函数 (function)

4.6 2026-01-27

函数(function)是对数据的加工。


# 函数名 hello
# 参数 name 类型 String
# 返回 String
func hello(name : String) -> String:
    return "Hello " + name
          

定义函数后,在其他地方使用函数名调用函数,获取返回结果。


var return_value = hello("John Doe")
          

空函数


func empty_function():
    pass
          

函数默认值


func hello(name : String, value := 10):
    pass

# 一个参数
hello("John Doe")

# 两个参数
hello("John Doe", 20)
          

引用函数


# 循环数组,对每个元素调用函数
func map(arr: Array, function: Callable) -> Array:
  var result = []
  for item in arr:
    result.push_back(function.call(item))
  return result

# 参数加一
func add1(value: int) -> int:
  return value + 1;

# 把add1函数作为参数,传递给map函数
func _ready() -> void:
  var my_array = [1, 2, 3]
  var plus_one = map(my_array, add1)
  print(plus_one) # Prints `[2, 3, 4]`.
          

匿名函数 (lambda)


# 定义匿名函数
var lambda = func (x):
  print(x)

lambda.call("Joe")
          

可变参数


# 三个点,表示传入参数的长度可能变化,这比使用数组更加灵活
func my_func(a, b = 0, ...args):
  prints(a, b, args)

# 接收到的参数就是一个数组
func _ready():
  my_func(1)             # 1 0 []
  my_func(1, 2)          # 1 2 []
  my_func(1, 2, 3)       # 1 2 [3]
  my_func(1, 2, 3, 4)    # 1 2 [3, 4]
  my_func(1, 2, 3, 4, 5) # 1 2 [3, 4, 5]