※ ChatGPTを利用し、要約された質問です(原文:二項演算子の定義)
理解できない箇所を解説!二項演算子の定義について
このQ&Aのポイント
rubyを学び始めた超初心者が二項演算子の定義について質問しています。具体的には、参考プログラムで表記されている「other.x」と「other.y」の意味について理解できないと述べています。また、class定義が終了していないのに使用している点にも疑問を持っています。
二項演算子の定義について理解できない箇所があります。参考プログラムで「other.x」と「other.y」という表記がありますが、これはベクトルの加算や減算を行うための演算子です。「other.x」は引数として与えられたベクトルのx座標、同様に「other.y」はy座標を表しています。
学習中の超初心者が二項演算子の定義について質問しています。参考プログラムでの「other.x」と「other.y」は、引数として与えられたベクトルのx座標とy座標を表しています。これらの値を元のベクトルのx座標とy座標に加算する処理を行っています。また、class定義が終了していないのに使用している点に関しては、文法的なエラーではありませんが、書き方としては適切ではありません。
二項演算子の定義
rubyを学び始めた超初心者です。プログラム経験はありません。
参考プログラム、下記を入力しましたが2箇所?納得ができません
笑われるような質問なのかどこを探しても解決できません。
よろしくご教授願います。
12行,16行 Vec.new(@x + other.x, @y + other.y)
other., other.yの表記の意味が理解できません。
class定義が終了していないのに使用している
1 class Vec
2 attr_reader :x, :y
3 def initialize(x=0, y=0)
4 @x, @y = x, y
5 end
6
7 def inspect #表示用
8 "(#{@x}, #{@y})"
9 end
10
11 def +(other)
12 Vec.new(@x + other.x, @y + other.y) # x, y のそれぞれを足す
13 end
14
15 def -(other)
16 Vec.new(@x - other.x, @y - other.y) # x, y のそれぞれを引く
17 end
18 end
19
20 vec0 = Vec.new(3, 6)
21 vec1 = Vec.new(1, 8)
22
23 p vec0
24 p vec1
25 p vec0 + vec1
お礼
詳細な説明ありがとうございます。 非常によく理解できました。