2016-06-24 7 views
1

_('some string')のように_()で囲まれた文字列をいくつか見たことがあります。これらの輸入品とデスクトッププログラムで例えばアンダースコアの文字列JavaScriptの意味

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; 

その関数の使用は何ですか?

+3

呼び出し可能な名前にすることができます。 Pythonで:http://stackoverflow.com/questions/20920956/python-what-does-an-underscore-before-parenthesis-do翻訳のため – Li357

+0

私が推測するであろうサイトを知らずに_ 関数_(テキスト、...){return translate(テキスト、...)。 ローカライズされたテキストを書き出すために – lexx9999

+0

通常、これは国際化のためのトランスレータとして定義された関数です。それはたくさん使われているので非常に短いです。 – Xedecimal

答えて

0

私は自分のコメントに基づいて自分自身に答えるでしょう。 (私はすでに_が特別なものではなく、通常の関数名であることを知っていた、それは質問ではなかった)。

これらのインポートに基づいて、システムライブラリの一部であるようです。具体的には、

const Lang = imports.lang; 

文字列を自動的に他の言語に翻訳するために使用されます。例:

_('Hello') //Hola 
5

本当に何でもよい。例えば、underscoreライブラリ全体は、通常の変数/関数/クラス名として_を使用して構築されています。

_は予約文字ではなく、i,aなどではありません。

実践例:underscore.jsを使用していない場合は

_('test') 
//ReferenceError: _ is not defined 

function _(str){ 
    console.log(str); 
} 

_('test') 
//Output: test 

多くの場合、それはあなたが単一の文字のみを使用したので、非常に頻繁に使用する機能のために使用されるだろう。

注:@Xedecimalと@AliTorabiで述べられているように、国際化のためのトランスレータとして定義された関数の名前を付けるためにもよく使われます。

+1

翻訳とグローバリゼーションでそれを使用することに注意してください:) – Li357

+0

@AndrewL。問題なし。それ以外の場合は、好みに合わせて編集します。 –

+1

非常に良い答え – Li357

0

JavaScriptをNO _機能としています。あなた自身で実装している場合や、外部ライブラリを使用している場合を除きます。

const _ = (str) => str.split('').join('_') 
_("hello") // "h_e_l_l_o" 
関連する問題