質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

162閲覧

Rubyで変数確認用に、余計な動作を一括で停止しておきたい

d04062

総合スコア111

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2020/08/17 02:16

Seleniimuを使っており、変数を確認をしたい際に、
Seleniimu関係のブラウザの立ち上げなどは不要な場合があります。

その際、flgを作って、動作して放ほしくない部分に、
下記のように1箇所ずつ追記しているのですが、

実際のプログラムでは、Sekenium関係の変数dはかなりの場所に散らばっているため、
「定義の時点で」などdに対して一括でシンプルな記載方法がないか探しています。

ruby

1require 'selenium-webdriver' 2flg = false 3 4d = Selenium::WebDriver.for :chrome if flg 5URL = "https://search.yahoo.co.jp/search?p=" 6 7p URL + "a" 8d.get(URL + "a") if flg 9p URL + "b" 10d.get(URL + "b") if flg 11p URL + "c" 12d.get(URL + "c") if flg 13

ちなみに、dが定義されなkれば、

undefined local variable or method `d' for main:Object (NameError)

dをnilにすると下記のエラーが出ます。

undefined method `get' for "https://search.yahoo.co.jp/search?p=":String (NoMethodError)

アドバイスお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

dをnilにすると下記のエラーが出ます。

dnilを入れてもスルーできるように、残りのdへのメソッドを呼び出しをd&.getのように書き換えてしまうのも一案です。

投稿2020/08/17 02:23

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

d04062

2020/08/17 02:38 編集

ありがとうございます。 なるほど、dのある場所に、1箇所記載する必要はありますが、 とてもシンプルな記述になりました。 (文献が見当たらなかったのですが) 変数の後に&を付けるとnilの場合、エラーを出さずにスルーするという意味になるのでしょうか?
maisumakun

2020/08/17 02:40

そうですね、Safe navigation operator(ぼっち演算子)と呼ばれる機能です。
d04062

2020/09/12 02:14

ありがとうございます。 ばっちり、使いこなせるようになりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問