GitHub:https://github.com/YuanSa/mnl.js你有没有因为函数参数太多,顺序混乱而头疼的问题?要解决这个问题,可以在python中给指定的参数赋值,在JavaScript中传递参数对象。本文提出另一种解决方案:MockNaturalLanguage。仿生命名法是一种命名函数的方法,允许您以接近自然语言的语法命名函数。假名命名法很简单,就是在函数名的任何地方插入括号。如:functiondeleteThe(i)ItemFrom(arr){returnarr.splice(i,1)}由于不兼容现有的JavaScript语法,我们需要编译器进行转换。目前的策略是用__x__代替括号,参数列表依次追加到函数名的末尾。出于兼容性原因,函数名称末尾的__x__将被删除。mnl语法示例letmyHeart=['kind','evil','happy'];console.log(`我天生就有${myHeart.join(',')}.`);remove('evil')from(myHeart);console.log(`现在,我心里只有${myHeart.join(',')}。`);functionremove(item)from(array){array.splice(array.indexOf(item),1);console.log(`现在我去掉了里面的${item}.`);}编译后(js语法)让myHeart=["kind","evil","happy"];console.log(`Ibornwith${myHeart.join(",")}.`);remove__x__from("邪恶",myHeart);console.log(`现在,我心里只有${myHeart.join(",")}。`);functionremove__x__from(item,array){array.splice(array.indexOf(item),1);console.log(`现在我删除了其中的${item}。`);}运行结果我天生善良,邪恶,快乐。现在我去除了其中的邪恶。现在,我心里只有善良,快乐。编译器为了实现功能,我用js写了一个编译器,可以用node运行。由于作者能力有限,目前的demo编译器无法完美编译。目前已知有以下bug:字符串中的代码也会被编译。详情请参考mnl.js的GitHub页面:https://github.com/YuanSa/mnl.js欢迎咨询合作。
