Godot 4.0一个简单的匿名方法的使用lambda

Posted 张学徒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Godot 4.0一个简单的匿名方法的使用lambda相关的知识,希望对你有一定的参考价值。

Godot 4.0 beta3

Godot 4.0 中添加了 lambda 表达式,匿名方法等很多方便的特性,这里我写个用于扫描目录下所有文件的功能

可以看到代码非常简洁

func test():
	# Callable 方法,扫描目录下所有的文件
	# [code]path[/code]		要扫描的路径
	# [code]callback[/code]	回调方法,这里用来再次调用自己
	# [code]list[/code]		存入路径到这个数组里
	var scan_dir = func(path:String, callback:Callable, list: Array):
		var dir = DirAccess.open(path)
		if dir:
			# 添加文件
			list.append_array(Array(dir.get_files()).map( func(file):
				# 给文件名加上路径
				return path.path_join(file)
			) )
			# 继续递归扫描
			for d in dir.get_directories():
				callback.call(path.path_join(d), callback, list)

	# 执行方法
	var file_list = []
	scan_dir.call("res://", scan_dir, file_list)

	# 输出目录及子目录下所有文件
	print(file_list) 作者:学徒的小窝 https://www.bilibili.com/read/cv19194651?spm_id_from=333.999.list.card_article.click 出处:bilibili

以上是关于Godot 4.0一个简单的匿名方法的使用lambda的主要内容,如果未能解决你的问题,请参考以下文章

Lamb表达式匿名类实现接口方法

Godot数据响应的方式执行功能

Godot数据响应的方式执行功能

Godot 4.0 设置应用程序图标项目图标

时隔 5 年,3 年匠心打造的 Godot Engine 4.0 都带来了哪些惊喜?

GDScript 导出变量 (Godot4.0)