No.5ベストアンサー
- 回答日時:
ははは...
def func(n)
p "inner: " + n.to_s
end
n = 3
func(10)
p "outer: " + n.to_s
で十分でしたね。
No.4
- 回答日時:
> func 内部からは同名の引数 arg3 にカバーされて見えません。
> の所が、分かりません。
def func(n)
p "inner: " + n.to_s
end
n = 3
test(10)
p "outer: " + n.to_s
だと何が起こりますか?
プログラム中のどの位置では、どっちの n が見えているか?
という話です。
> 問題の答えは、20,10,333でしょうか?
そのつもりです。
No.3
- 回答日時:
def func(arg1, arg2 = 222, arg3 = 333)
p arg1, arg2, arg3
end
func(arg1=10, arg3=20)
とやったら、プリントされるのは
10, 20, 333
です。
10, 222, 20
ではありません。
Ruby も C と同じで代入は演算子なので
func(arg1=10, arg3=20)
と書くことはできて、
arg1=10
arg3=20
func(arg1, arg3)
と書いたのと同じ意味になります。
ここで arg3=20 の代入が行われた arg3 は
func の外で定義された変数で、func 内部からは
同名の引数 arg3 にカバーされて見えません。
func 側から見ると
func(10,20) と呼び出されたのと同じことになるので、
引数 arg1, arg2 に 10, 20 がセットされ
引数の個数が足りないぶんデフォルトが使われて
引数 arg3 は 333 になります。
呼び出し側で func(arg1=10, arg3=20) と書いても、
func 内部の arg3 が 20 になるわけではないんです。
では問題:
頭記の func を
func(arg3=20, arg1=10) で呼び出したら
何とプリントされるでしょう?
No.2
- 回答日時:
ああ、誤時でわけわからんことになってましたね。
訂正:
キーワード引数を使って def func(arg1,arg2: 222, arg3: 333) とすると、
func(10, arg3: 30) で呼び出すことによって
arg1, arg2, arg3 の値を 10, 222, 30 にしてメソッドfunc を呼ぶことができ、
これが = を使ったデフォルト値の指定との違いです。
No.1
- 回答日時:
def func(arg1, arg2: val) だと、
def func(arg1, arg2 = val) と特に違いはありません。
キーワード引数は、複数個あったとき意味を持ちます。
def func(arg1,arg2 = 222, arg3 = 333) で定義されたメソッドを
func(10, 20) で呼び出すと、
arg1, arg2, arg3 の値を 10, 20, 333 にしてメソッドfunc が呼ばれます。
この形で定義されたメソッドのarg3 に好きな値を与え、
arg2 はデフォルト値222 にして呼び出す方法はありません。
キーワード引数を使って def func(arg1,arg2 = 222, arg3 = 333) とすると、
func(10, arg3: 30) で呼び出すことによって
arg1, arg2, arg3 の値を 10, 222, 30 にしてメソッドfunc を呼ぶことができ、
これが = を使ったデフォルト値の指定との違いです。
: を使ったキーワード引数の指定が 1個だけなら、
: でも = でも呼び出す側から見て同じです。
def func(arg1, arg2: 222) でも、
def func(arg1, arg2 = 222) でも、
func(10) で呼び出せば arg2 には 222 が与えられます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java プログラミング Java 2 2024/01/26 23:24
- C言語・C++・C# C言語の関数と配列に関する質問 8 2024/02/27 15:45
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- マウス・キーボード キーボードについて。 1 2023/12/07 21:19
- 生物学 生物 補足に載せた写真の黄色下線部が分からないです。 私は背側を黄色で囲った部分だと思って教科書呼ん 1 2023/09/03 23:50
- その他(趣味・アウトドア・車) Amazonの返品、交換 昨日、コントローラを注文して 午前中に届いた物を確認した所 説明と写真に書 2 2024/02/14 15:16
- 高校 赤い下線部分の計算が分かりません。心優しい方、お手数ですが、写真で説明していただけると嬉しすぎます 2 2023/08/06 15:17
- Java javaについて 1 2023/12/06 20:08
- C言語・C++・C# C言語初心者です、、、お助けください 2 2023/03/14 20:08
- アンテナ・ケーブル 急にテレビの映りが悪くなりました。ブースターという物を買ってみたいのですが、選び方を教えて下さい。 6 2023/12/22 18:25
このQ&Aを見た人はこんなQ&Aも見ています
-
昔のあなたへのアドバイス
過去のあなたへ一度だけアドバイスを送れる電話があったとします。
-
字面がカッコいい英単語
あなたが思う「字面がカッコいい英単語」を教えてください。
-
これ何て呼びますか
あなたのお住いの地域で、これ、何て呼びますか?
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
アセンブリ言語について。
その他(プログラミング・Web制作)
-
Ruby newメソッド
Ruby
-
Cのプログラムからアクセスできないファイル名の一括変更方法
C言語・C++・C#
-
-
4
C言語のことです。写真(見にくくてすいません)の下のプログラムを実行したいのですが四行目がおかしいと
C言語・C++・C#
-
5
perl の open について教えてください。
Perl
-
6
C言語 関数、変数の宣言について
C言語・C++・C#
-
7
c++の勉強方法を教えてくださいプログラミングをやった事がなく1から勉強を始めようと思います1日1時
C言語・C++・C#
-
8
IT業で開発をされてる方々に質問なんですが、一日に書かれるコード数ってどれくらいですか? また、最近
その他(プログラミング・Web制作)
-
9
以下のプログラムの実行結果はどうなると思いますか? その理由も教えてください。
Visual Basic(VBA)
-
10
算術演算子「¥」の意味について
Visual Basic(VBA)
-
11
趣味がプログラミングだと言ってもいい?
その他(プログラミング・Web制作)
-
12
AIのプログラムについて教えてください
その他(プログラミング・Web制作)
-
13
プログラミングの進学について
その他(プログラミング・Web制作)
-
14
プログラミングのやり方ざっくりでいいから教えて
その他(プログラミング・Web制作)
-
15
検索1位なのに依頼がない
SEO
-
16
Visualbasicの現状について教えてください
Visual Basic(VBA)
-
17
Vba 型が一致しません(エラー13)のセルを特定する方法を教えてください
Visual Basic(VBA)
-
18
pythonについて
その他(プログラミング・Web制作)
-
19
特許公報のPDFから項目毎にExcelシートの列に転記したい
オープンソース
-
20
HTML &CSSとHTML5&CSS3 違い
HTML・CSS
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ルビー言語 csvファイル part2
-
ルビー言語 ライブラリー
-
ルビー言語 ライブラリー
-
ルビー言語 csvファイル part1
-
パソコンのスクリーンセーバー...
-
ビーリアルのユーザー名を変え...
-
Ruby 変数 用途と違い
-
英数字を含む文字列(0-9,A-Z)...
-
Ruby 格納
-
100万件越えCSVから条件を満た...
-
VBA
-
Ruby on Railsでサーバーを立ち...
-
1、Rstudioで回帰直線を求める...
-
やり 直し
-
Ruby on railsをrails sで立ち...
-
秀丸エディタで、同じ記号で囲...
-
教えてください
-
パイソンプログラミング
-
パイソンのクラスについて
-
pandasでsqlite3にテーブル作成...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Ruby newメソッド
-
Ruby 格納
-
ビーリアルのユーザー名を変え...
-
Ruby 変数 用途と違い
-
Ruby 引数
-
(再質問)エクセルのマクロボ...
-
英数字を含む文字列(0-9,A-Z)...
-
パソコンのスクリーンセーバー...
-
pandasでsqlite3にテーブル作成...
-
100万件越えCSVから条件を満た...
-
教えてください
-
Accessで文字列のバイト数読み込み
-
1、Rstudioで回帰直線を求める...
-
pythonエラー
-
じゃんけんのプログラムを作っ...
-
VBScriptでExcel(2019)上のデー...
-
実行時エラー450:引数の数が一...
-
C言語の入力した文字を反転させ...
-
クリスタルレポートで困ってい...
-
パイソンエラーについて
おすすめ情報
すみません。これが = を使ったデフォルト値の指定との違いです。の所の、「これが」と、違いについて、もう少し分かりやすく教えて頂けると幸いです。
迅速な回答ありがとうございます。
def func(arg1,arg2 = 222, arg3 = 333) で定義されたメソッドを
func(10, 20) で呼び出すと、
arg1, arg2, arg3 の値を 10, 20, 333 にしてメソッドfunc が呼ばれます。
この形で定義されたメソッドのarg3 に好きな値を与え、
arg2 はデフォルト値222 にして呼び出す方法はありません。
の所で、func(10, 20) をfunc(arg1=10,arg3=20)とかには、ならないのでしょうか?教えて頂けると幸いです。
迅速な回答ありがとうございます。質問なのですが、func 内部からは
同名の引数 arg3 にカバーされて見えません。
の所が、分かりません。それと、問題の答えは、20,10,333でしょうか?教えて頂けると幸いです。
迅速な回答ありがとうございます。
所で、プログラムが間違っていませんか?
正しくは、
def func(n)
p "inner: " + n.to_s
end
def test(n)
func(n)
end
n = 3
test(10)
p "outer: " + n.to_s
だと思うのですが。
で、結果は、
"inner: 10"
"outer: 3"
ではないでしょうか?
それで、前者のinnerは、test(n)に、func(n)を代入して、10が出力され、後者のouterは、func(n)が無いため、n=3が代入され、3が出力されると言う事でしょうか?教えて頂けると幸いです。
迅速な回答ありがとうございます。
では問題:
頭記の func を
func(arg3=20, arg1=10) で呼び出したら
何とプリントされるでしょう?
の所で、func(arg1=10, arg3=20)
と書くことはできて、
arg1=10
arg3=20
func(arg1, arg3)
と書いたのと同じ意味になります。
ここで arg3=20 の代入が行われた arg3 は
func の外で定義された変数で、func 内部からは
同名の引数 arg3 にカバーされて見えません。
の所の説明は、どう変わるのでしょうか?教えて頂けると幸いです。