我想从命令行和脚本中定义许多函数。一种方法是为每个函数创建一个文件,并将它们存储在autoloading folder中(例如compile 'joda-time:joda-time:2.9.9'
,var url = "ondemand_driver.php";
$.ajax(
{
url : url,
type: "POST",
data : value,
success: function() {
window.location(url);
}
});
,...)
但我不想将每个功能都保存在自己的文件中。有没有办法在单个文件中定义函数集合(这样可以从命令行和多个脚本中引用它们)?
(或者,鱼类遵循强有力的设计原则。如果有一个记录在案的鱼 - 设计 - 这种方式基于每个用户定义的功能存储一个文件,我希望看到它。)
答案 0 :(得分:4)
您可以在一个文件中使用多个功能,但只能对其中一个使用自动加载功能。
问题在于:如果你有一个功能" foo"和一个功能" bar"在一个文件中,鱼怎么会知道,而不先读取文件?
对于自动加载,文件以函数命名(例如" bar"将存储在" bar.fish"),因此鱼可以找出它的位置。
所以,你可以做以下两件事之一:
如果始终首先调用其中一个函数,则可以将其用作文件名并将其存储在函数文件中。在你使用了这个功能之后,fish知道其余的(因为source
d文件)。
如果不是这种情况(或者您不想依赖它),您可以在需要时手动source
文件(或只需一次)启动)或将其存储在〜/ .config / fish / conf.d / SOMETHING.fish中的配置片段中(在阅读config.fish之前,它会自动地source
)。
前者意味着例如辅助函数可以与主函数一起存储。当您在不使用该功能的情况下加载文件时,后者会慢一点,但除非您过度使用此功能,否则您甚至不会注意到这一点。