我在某些地方看到字符串被_()包围,如_('some string')
。
例如,在具有这些导入的桌面程序中:
const Applet = imports.ui.applet;
const St = imports.gi.St;
const Gdk = imports.gi.Gdk;
const Gtk = imports.gi.Gtk;
const Keymap = Gdk.Keymap.get_default();
const Caribou = imports.gi.Caribou;
const PopupMenu = imports.ui.popupMenu;
const Lang = imports.lang;
const Gio = imports.gi.Gio;
const Main = imports.ui.main;
const MessageTray = imports.ui.messageTray;
该功能的用途是什么?
答案 0 :(得分:5)
它真的可以是任何东西。例如,整个underscore库是使用_
作为普通变量/函数/类名构建的。
_
不是保留字符,不能超过i
,a
等等。
实际例子:
_('test')
//ReferenceError: _ is not defined
function _(str){
console.log(str);
}
_('test')
//Output: test
通常情况下,如果不使用underscore.js,它将用于您经常使用的函数,因此只使用单个字符。
注意:正如@Xedecimal和@AliTorabi所述,它通常也被用来命名一个定义为国际化翻译的函数,因为它非常简短并经常使用。
答案 1 :(得分:0)
JavaScript中的NO _
函数,除非您自己实现,或使用外部库。
const _ = (str) => str.split('').join('_')
_("hello") // "h_e_l_l_o"
答案 2 :(得分:0)
我会根据我得到的评论回答自己。 (我已经知道_
并不是什么特别的东西,而是一个正常的函数名称,这不是问题所在。)
基于这些导入,它似乎是系统库的一部分。具体地说:
const Lang = imports.lang;
它用于自动将字符串翻译成其他语言。例如:
_('Hello') //Hola