1

私はオプションを取るこのカピバラメソッドを持っています:

page.should have_selector("#jFooterStandardLinks", :visible => true)

このオプションは、次のように提供することもできます。

page.should have_selector("#jFooterStandardLinks", visible: true)

どちらの方法も機能しますが、EclipseIDEでエラーが発生します。

  • :visible => trueとの違いは何visible: trueですか?
  • visible:まだRubyシンボルとして解釈されますか?
4

3 に答える 3

1

違いはありません。symbol: valueはのエイリアスですが:symbol => value、最初のものだけがruby1.8と互換性がありません。

于 2013-02-07T13:08:57.407 に答える
1

違いはありません。キーがシンボルである間、 Rubyはkey: valueハッシュ構文を受け入れます。したがって

x_method @blah, some_key: 'asdf', another_key: 3, yet_a_key: true # is equivalent to:
x_method(@blah, {:some_key => 'adsf', :another_key => 3, :yet_a_key => true })

@ckruseが指摘したように、最初の構文はruby1.8.7では使用できません。

于 2013-02-07T13:09:04.297 に答える
1

唯一の違いは、ルビー1.8xから1.9xへの移行です。今のところ、それはまったく同じですが、:visible => trueが最終的に非推奨になり、visible:trueが優先される可能性があります。

新しい構文は少しシンプルでクリーンで、JSONによく似ています。

あなたの2番目の質問に関して、これが私が見つけた素晴らしい引用です:

「新しい表記法は、世の中で最も一般的なスタイルのハッシュ、いわゆるシンボルからオブジェクトへのハッシュの構文上の砂糖のようなものです。これをirbで行うと、ルビーが古い学校のハッシュをシンボルとともに返すのがわかります。キーとして使用:」

new_hash = {simon: "Talek", lorem: "Ipsum"}
# => {:simon=>"Talek", :lorem=>"Ipsum"} 

「ハッシュキーとして任意のオブジェクトが必要な場合でも、昔ながらの方法で行う必要があります。」

出典: http: //breakthebit.org/post/8453341914/ruby-1-9-and-the-new-hash-syntax

于 2013-02-07T13:22:49.307 に答える