0
comics = load_comics( '/comics.txt' )

Popup.make do
  h1 "Comics on the Web"
  list do
    comics.each do |name, url|
      link name, url
    end
  end
end

私はルビーが初めてです。これは Ruby Web サイトのコードです。

メニューに「リンク」と「リスト」のキーワードが見つかりません。誰かがこれらの2つのキーワードを少し説明できますか.2つのキーワードの定義はどこにありますか.

彼らが変数名とURLをどのように読んでいるかについても混乱しています.彼らは同じ行のスペースでそれを読んでいますか?私がComics1 link_of_comics_site_1 Comics2 link_of_comics_site_2 Comics3 link_of_comics_site_3を持っている場合

したがって、最初の反復では、name=Comics1、および url =link_of_comics_site_1

ありがとう。

4

2 に答える 2

2

それはRubyだけではありません。これは、HTML生成用のrubyアドオンメソッドを使用するWebページのテンプレートです。

しかし、おそらく、への呼び出しの結果はload_comicsハッシュであり、キーは名前であり、値はURLです。あなたはそれらの1つを自分で作ることができます:

my_comics_hash = { "name1" => "url1", "name2" => "url2" }

その後、同じ方法で繰り返すことができます。

my_comics_hash.each do |name, url|
  puts "Name #{name} goes with URL #{url}"
end

あなたのコードでは、ポップアップウィンドウ内にHTMLリストを作成していますが、同じ考えです。このeachメソッドは、コレクション(この場合はハッシュ)を反復処理し、そのコレクション内のすべてのアイテム(この場合は各キーと値のペア)に対してコードを実行します。を呼び出すときはeach、内部にコードのブロックを渡しますdo... end; これが、各アイテムで実行されるコードです。現在のアイテムはコードブロックに渡されます。コードブロックは、単語の直後にパイプ内にアイテムを保持する変数を宣言しますdo。キーと値のペアを反復処理しているため、2つの変数を宣言できます。キーは最初の変数に、値は2番目の変数になります。

于 2012-05-19T06:08:03.037 に答える
1

ruby 関数では、括弧は省略可能で、";" end of statement もオプションです。ej

link "click here" , "http://myweb.com" 

と同等です:

link("click here", "http://myweb.com");

ただし、行に複数のステートメントがある場合は、「;」必須です、ej

  link("click here1", "http://myweb.com"); link("click here2", "http://myweb.com");

あなたのコードでは、次のように書くことができます

 link(name, url)

あるいは単に

 link(name, url);

また

 link name, url

ただし、他の理由がない限り、読みやすくするために関数パラメータを括弧で囲むことを強くお勧めします。「;」Ruby の世界では一般的ではありません。

于 2012-05-19T06:18:04.847 に答える