Ruby-ステートメント内の誤った改行はまだ結果をもたらしますか?

Evgeni Sergeev

蒸留されたスクリプトは次のとおりです。

z1 = (12 -
          2) / (5)
z2 = (12
        -  2) / (5)
puts(z1.to_s + " " + z2.to_s)

それは与える:

$ ruby rubytest.rb 
2 -1

z1行の終わりにぶら下がっている演算子は、行の自動継続として解釈されるため、この場合が正しい方法であることがわかりました。

しかし、私は通訳がそのz2事件で失敗することを期待し、ステートメントが不完全であるか、その2行目が無意味であると私に言います。しかし、それは「問題なく」処理し、「-1」の答えを出します。混乱していることを認めず、でたらめな答えが見過ごされることを期待して、自信を持って見せようとしているのでしょうか。

誰かがの評価で実際に何が起こっているのz2か、なぜそれが「-1」なのか、なぜ構文エラーがないのか、そしてこの動作が役立つ例がありますか(またはそれを削除するリクエストを提出する必要があります)?

キャスパー

これは機能ですが、最初はバグだと思われるかもしれません。それはあなたがこれを行うことができるのと同じ理由です(これは多くの場合便利です):

(call_function_1; call_function_2) if some_condition

改行はと同じように解釈され;ます。たとえば、これは正常に評価され、最後の式のみが返されますが、それでもすべての式が評価されます。

(1
 2
 3
 4
 5)
=> 5

それはと同じです

(1; 2; 3; 4; 5)
=> 5

すべての式が評価されていることを確認するには、次の例を試してください。

(puts "A"
 puts "B"
 puts "C"
 123)
A
B
C
=> 123

したがって、あなたの例は次のようになります。

(12; -2) / 5

これは次と同じです:

-2 / 5

これは-1です。

Rubyを12個別のステートメントではなく未完成のステートメントとして解釈させるには、行継続のヒントを追加することで、Rubyにこれを伝えることができます\

(12 \
 - 2) / 5
=> 2

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Ruby onRails-paramsを使用したIfステートメント-間違った結果を返す

分類Dev

Railsの1行のRuby'if else 'ステートメントにクラスまたはIDを追加しますか?

分類Dev

Ruby:複数のreturn..ifステートメントを使用した場合の影響はありますか?

分類Dev

Ruby .whereは、重複した結果を1回だけカウントします

分類Dev

ポリゴンのブーストポイントが誤った結果をもたらしますか?

分類Dev

Ruby:新しい行を削除し、テキストから改行を返します

分類Dev

ネストされた配列上のRubyは、一貫性のない結果を返します

分類Dev

モデル内のメソッドから別のメソッド、またはRuby onRailsのコントローラーに値を渡す方法

分類Dev

RubyのScanメソッドの結果配列を複製または複製しますか?

分類Dev

Ruby:If / elseステートメントで定義された変数は、if / elseの外部からアクセスできますか?

分類Dev

最初の条件がfalseの場合、rubyはifステートメントの評価を停止しますか?

分類Dev

すべてのrspecテストがrubyファイルから合格したことをテストします

分類Dev

メソッドの最後にnilまたはbooleanを返す方が、Rubyにコードの最後の行の結果を返させるよりもパフォーマンスが優れていますか?

分類Dev

このRubyステートメントで.sendに渡されると、:[]は何をしますか?

分類Dev

ruby: 特別な配列を任意の長い 3 項 if...elsif...else ステートメント (または 3 項式) として評価します

分類Dev

rubyメソッドは奇数/偶数インデックスの間違った要素を返しますruby2.6.0

分類Dev

JOINSを使用してSQLクエリをrubyステートメントに変換するためのヘルプを入手できますか?

分類Dev

Ruby onRailsでインクルードまたは結合を使用して他のテーブルの結果を取得する方法

分類Dev

Railsモデルは、異なるコントローラーアクション間で状態を保存するために使用できる通常のRubyクラスですか?アクティブレコードもデータベースもまったくありません

分類Dev

Ruby on Railsは、すべてのpostgresqlテーブルコンテンツを誤ってダンプします

分類Dev

rubyは列挙可能なmap_consメソッドまたはそれに相当するものをサポートしていますか?

分類Dev

Ubuntu20.04にchruby / ruby-installをインストールしました:bash-script内からrubyを実行できません

分類Dev

Rubyは、キーが見つかった場合でもフェッチのデフォルト値を評価します

分類Dev

Ruby Sinatraが、IFステートメントの最初の部分またはIFステートメントのELSE / ENDの前のすべての出力をブラウザーに表示しない

分類Dev

Ruby gems を使用した Ruby-OAuth pkg のインストールは、プラットフォームごとに独立していますか?

分類Dev

Rubyはブロックから「スーパー」を呼び出します(つまり、コンテキスト内で)

分類Dev

Rubyでretryステートメントはどのように機能しますか?

分類Dev

Rubyバインディングテストスイートを使用してSeleniumWebdriverを実行し、実行が完了したら、irbでさらにテストを作成する方法はありますか?

分類Dev

Rubyでcaseステートメントを再起動または再利用するにはどうすればよいですか?

Related 関連記事

  1. 1

    Ruby onRails-paramsを使用したIfステートメント-間違った結果を返す

  2. 2

    Railsの1行のRuby'if else 'ステートメントにクラスまたはIDを追加しますか?

  3. 3

    Ruby:複数のreturn..ifステートメントを使用した場合の影響はありますか?

  4. 4

    Ruby .whereは、重複した結果を1回だけカウントします

  5. 5

    ポリゴンのブーストポイントが誤った結果をもたらしますか?

  6. 6

    Ruby:新しい行を削除し、テキストから改行を返します

  7. 7

    ネストされた配列上のRubyは、一貫性のない結果を返します

  8. 8

    モデル内のメソッドから別のメソッド、またはRuby onRailsのコントローラーに値を渡す方法

  9. 9

    RubyのScanメソッドの結果配列を複製または複製しますか?

  10. 10

    Ruby:If / elseステートメントで定義された変数は、if / elseの外部からアクセスできますか?

  11. 11

    最初の条件がfalseの場合、rubyはifステートメントの評価を停止しますか?

  12. 12

    すべてのrspecテストがrubyファイルから合格したことをテストします

  13. 13

    メソッドの最後にnilまたはbooleanを返す方が、Rubyにコードの最後の行の結果を返させるよりもパフォーマンスが優れていますか?

  14. 14

    このRubyステートメントで.sendに渡されると、:[]は何をしますか?

  15. 15

    ruby: 特別な配列を任意の長い 3 項 if...elsif...else ステートメント (または 3 項式) として評価します

  16. 16

    rubyメソッドは奇数/偶数インデックスの間違った要素を返しますruby2.6.0

  17. 17

    JOINSを使用してSQLクエリをrubyステートメントに変換するためのヘルプを入手できますか?

  18. 18

    Ruby onRailsでインクルードまたは結合を使用して他のテーブルの結果を取得する方法

  19. 19

    Railsモデルは、異なるコントローラーアクション間で状態を保存するために使用できる通常のRubyクラスですか?アクティブレコードもデータベースもまったくありません

  20. 20

    Ruby on Railsは、すべてのpostgresqlテーブルコンテンツを誤ってダンプします

  21. 21

    rubyは列挙可能なmap_consメソッドまたはそれに相当するものをサポートしていますか?

  22. 22

    Ubuntu20.04にchruby / ruby-installをインストールしました:bash-script内からrubyを実行できません

  23. 23

    Rubyは、キーが見つかった場合でもフェッチのデフォルト値を評価します

  24. 24

    Ruby Sinatraが、IFステートメントの最初の部分またはIFステートメントのELSE / ENDの前のすべての出力をブラウザーに表示しない

  25. 25

    Ruby gems を使用した Ruby-OAuth pkg のインストールは、プラットフォームごとに独立していますか?

  26. 26

    Rubyはブロックから「スーパー」を呼び出します(つまり、コンテキスト内で)

  27. 27

    Rubyでretryステートメントはどのように機能しますか?

  28. 28

    Rubyバインディングテストスイートを使用してSeleniumWebdriverを実行し、実行が完了したら、irbでさらにテストを作成する方法はありますか?

  29. 29

    Rubyでcaseステートメントを再起動または再利用するにはどうすればよいですか?

ホットタグ

アーカイブ