2016-04-01 9 views
-2

私はクォータでthis articleを見つけ、このコードをスニッフィングしました。しかし、私はそれについて多くの情報を見つけることができませんでした。

def Ke(x) 
    "called Ke with param #{x}" 
end 

$ Ke 'sha' 
=> "Called Ke with param sha" 

$ Ke$ha 
=> "Called Ke with param " 

$ Ke$overwhaterver 
=> "Called Ke with param " 

はなぜKe$haが機能Ke(x)と呼ばれる呼び出しんが、それはまた、xパラメータを無視しますか?

+1

これまでのようなものがありましたが、Stack Overflowでは '$'を検索することができないようです...>< – Carpetsmoker

+0

@Carpetsmokerええ、そうです。たぶんそれが下降声の理由ですか? – Azuan

答えて

4

$を使用すると、グローバル変数にアクセスできます。 Rubyは自動的にかっこを追加します。 Ke($ha)またはKe $haを使用する場合と同じです。

グローバル変数は常にエラーなしで参照できます。彼らはnilをデフォルト:

$zxC# => nil 
$zxc = 'asd' 
$zxC# => "asd" 

パラメータ$haそれはnilだ、「無視」ではない、とnil.to_sは空の文字列です。

+0

なぜ 'Ke 'と' $ ha'の間にスペースを入れる必要はありませんか? – Azuan

+0

@Azuan Rubyのパーサはかなり柔軟です。 '$'はグローバル変数の先頭にしか現れないので、新しいトークンが始まることを知っています。初期化されていないインスタンスvar: 'Ke @ x#=> nil' –

関連する問題