Latest web development tutorials

روبي مشغلي

روبي تدعم مجموعة غنية من المشغلين. معظم مشغلي هي في الواقع استدعاءات الأسلوب. على سبيل المثال، يتم تفسير أ ب + ككل. + (B)، حيث متغير يتم استدعاء أسلوب مشيرا +، ب كمعلمة في استدعاء الأسلوب.

لكل عامل (+ - * /٪ ** & | ^ << >> && ||)، لديها المقابلة عامل التعيين اختصار (+ = - =، الخ).

العوامل الحسابية روبي

لنفترض أن المتغير قيمة من 10، وقيمة المتغير b من 20، ثم:

运算符描述实例
+加法 - 把运算符两边的操作数相加 a + b 将得到 30
-减法 - 把左操作数减去右操作数 a - b 将得到 -10
*乘法 - 把运算符两边的操作数相乘 a * b 将得到 200
/除法 - 把左操作数除以右操作数 b / a 将得到 2
%求模 - 把左操作数除以右操作数,返回余数 b % a 将得到 0
**指数 - 执行指数计算 a**b 将得到 10 的 20 次方

مقارنة روبي

لنفترض أن المتغير قيمة من 10، وقيمة المتغير b من 20، ثم:

运算符描述实例
==检查两个操作数的值是否相等,如果相等则条件为真。 (a == b) 不为真。
!=检查两个操作数的值是否相等,如果不相等则条件为真。 (a != b) 为真。
>检查左操作数的值是否大于右操作数的值,如果是则条件为真。 (a > b) 不为真。
<检查左操作数的值是否小于右操作数的值,如果是则条件为真。 (a < b) 为真。
>=检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 (a >= b) 不为真。
<=检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 (a <= b) 为真。
<=>联合比较运算符。如果第一个操作数等于第二个操作数则返回 0,如果第一个操作数大于第二个操作数则返回 1,如果第一个操作数小于第二个操作数则返回 -1。 (a <=> b) 返回 -1。
===用于测试case语句的 when 子句内的相等。 (1...10) === 5 返回 true。
.eql?如果接收器和参数具有相同的类型和相等的值,则返回 true。 1 == 1.0 返回 true,但是 1.eql?(1.0) 返回 false。
equal?如果接收器和参数具有相同的对象 id,则返回 true。如果 aObj 是 bObj 的副本,那么 aObj == bObj 返回 true,a.equal?bObj 返回 false,但是 a.equal?aObj 返回 true。

روبي عامل التعيين

لنفترض أن المتغير قيمة من 10، وقيمة المتغير b من 20، ثم:

运算符描述实例
=简单的赋值运算符,把右操作数的值赋给左操作数 c = a + b 将把 a + b 的值赋给 c
+=加且赋值运算符,把右操作数加上左操作数的结果赋值给左操作数 c += a 相当于 c = c + a
-=减且赋值运算符,把左操作数减去右操作数的结果赋值给左操作数 c -= a 相当于 c = c - a
*=乘且赋值运算符,把右操作数乘以左操作数的结果赋值给左操作数 c *= a 相当于 c = c * a
/=除且赋值运算符,把左操作数除以右操作数的结果赋值给左操作数 c /= a 相当于 c = c / a
%=求模且赋值运算符,求两个操作数的模赋值给左操作数 c %= a 相当于 c = c % a
**=指数且赋值运算符,执行指数计算,并赋值给左操作数 c **= a 相当于 c = c ** a

روبي مهمة الموازي

كما يدعم روبي متغيرات مهمة موازية. وهذا يسمح متغيرات متعددة يمكن تهيئة من سطر من التعليمات البرمجية روبي. على سبيل المثال:

و= 10
ب = 20
ج = 30

عن طريق التعيين مواز أسرع تنويه:

أ، ب، ج = 10، 20، 30

احالة مواز عند تبادل القيم اثنين من المتغيرات هي أيضا مفيدة:

أ، ب = ب، ج

روبي المختصة بالبت مشغلي

مشغلي المختصة بالبت بناء على الشيء، والشيء عن عملية قليلا.

إذا افترضنا أن ل= 60، ب = 13، والآن في شكل ثنائي، وهي على النحو التالي:

و= 0011 1100

ب = 0000 1101

-----------------

أ و ب = 0000 1100

و| ب = 0011 1101

و^ ب = 0011 0001

~ A = 1100 0011

يسرد الجدول التالي روبي دعم مشغلي المختصة بالبت.

مشغلي وصف أمثلة
و إذا كان كل وجود في اثنين من المعاملات، وثنائي ومشغل لنسخ نتيجة لذلك. (A & B) سوف يكون 12، وهذا هو، 0000 1100
| إذا كان موجودا في أي من المعامل، ثنائي أو مشغل لنسخ نتيجة لذلك. (A | ب) سيكون 61 عاما، هو 00111101
^ إذا كان موجودا في أحد المعامل، ولكن لا وجود لها في وقت واحد في اثنين من المعاملات، مشغل XOR ثنائي نسخة منها إلى نتيجة. (A ^ ب) سيكون 49، هو 00110001
~ ثنائي مشغل تكملة هو عامل أحادي، وهو "الوجه" تأثير الموقف. (~ A) سيكون -61، 1100 0011،2 سيكمل شكل الرقم الثنائي مع علامة.
<< ثنائي مشغل التحول الأيسر. قيمة المعامل الأيسر للتحرك اليسار واليمين المعامل عدد محدد من الأرقام. و<< 2 سيكون 240، وهذا هو 11110000
>> ثنائي مشغل التحول الصحيح. قيمة المعامل الأيسر تتحرك المعامل الحق في عدد محدد من البتات إلى اليمين. و>> 2 سيكون 15، وهذا هو، 0000 1111

العوامل المنطقية روبي

يسرد الجدول التالي روبي دعم التشغيل المنطقية.

لنفترض أن المتغير قيمة من 10، وقيمة المتغير b من 20، ثم:

运算符描述实例
and称为逻辑与运算符。如果两个操作数都为真,则条件为真。 (a and b) 为真。
or称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 (a or b) 为真。
&&称为逻辑与运算符。如果两个操作数都非零,则条件为真。 (a && b) 为真。
||称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 (a || b) 为真。
!称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 !(a && b) 为假。
not称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 not(a && b) 为假。

روبي مشغل الثلاثي

هناك أكثر من إجراء واحد يسمى المشغل الثلاثي. أول قيمة الحوسبة حقيقة التعبير، ومن ثم قررت تنفيذ اثنين من وراء في بيان استنادا إلى نتيجة. مشغل الشرطي بناء الجملة التالية:

运算符描述实例
? :条件表达式如果条件为真 ? 则值为 X : 否则值为 Y

روبي المشغل مجموعة

في روبي، يتم استخدام تسلسل لإنشاء سلسلة من قيمة مجموعة متتالية - يحتوي بدء القيمة، قيمة النهاية (حسب التوفر) والقيم بينهما.

في روبي، هذه السلاسل هي استخدام ".." و "..." مشغلي النطاق لإنشاء. مجموعة يحتوي على نموذجين خلق بداية ونهاية القيم، ومجموعة من ثلاث إلى إنشاء نموذج يحتوي فقط لم يتم تضمين قيمة نهاية قيمة البداية.

运算符描述实例
..创建一个从开始点到结束点的范围(包含结束点) 1..10 创建从 1 到 10 的范围
...创建一个从开始点到结束点的范围(不包含结束点) 1...10 创建从 1 到 9 的范围

روبي محددة؟ المشغل

تعرف؟ هو مشغل خاص، سواء في شكل مكالمة طريقة لتمرير التعبير حكم يعرف. تقوم بإرجاع تعبير سلسلة الوصف، إذا كان التعبير عوائد غير محددةلا شيء.

وفيما يلي مختلف مشغلي يعرف استخدام ؟:

استعمال 1

تعرف؟ متغير # إذا تمت تهيئة متغير صحيح،

على سبيل المثال:

فو = 42
تعرف؟ فو # => "المحلية، متغير"
تعرف؟ $ _ # => "العالمية-متغير"
تعرف؟ بمنع # => لا شيء (غير محدد)

استخدام 2

تعرف؟ method_call # إذا تم تعريف الأسلوب، صحيح

على سبيل المثال:

تعرف؟ يضع # "طريقة" =>
تعرف؟ يضع (بار) # => لا شيء (غير معروف هنا بار)
تعرف؟ فك ​​# => لا شيء (غير معروف هنا)

استخدام 3

# إذا كان من الممكن استدعاء الأسلوب كما السوبر المستخدم موجودا، ثم صحيح
تعرف؟ عظمى

على سبيل المثال:

تعرف؟ السوبر # => "السوبر" (إذا كان يمكن أن يسمى)
تعرف؟ عظمى # => لا شيء (إذا لا يمكن التذرع)

استخدام 4

تعرف؟ تسفر # إذا مرت كتلة التعليمات البرمجية صحيح،

على سبيل المثال:

تعرف؟ العائد # => "العائد" (إذا كان كتلة نقل)
تعرف؟ تسفر # => لا شيء (إن لم يكن تمرير كتلة)

روبي نقطة المشغل "." والمشغل القولون المزدوج "::"

يمكنك إضافة اسم الوحدة النمطية ويؤكد استدعاء أسلوب وحدة قبل اسم الأسلوب. يمكنك استخدام اسم وحدة واثنين من كولون إلى مرجع ثابت.

:: هل مشغل الأحادية، مما يسمح للثوابت، مثيل أساليب وأساليب الفئة المحددة داخل الطبقة أو وحدة نمطية التي يمكن الوصول إليها في أي مكان في فئة أو وحدة نمطية من الخارج.

تذكر: في روبي، والطبقات والأساليب يمكن أن تستخدم أيضا ثابت.

تحتاج فقط إلى إضافة قبل اسم المتغير المستمر في التعبير:: البادئة، للعودة إلى فئة أو وحدة نمطية الكائن المناسب.

إذا لم يتم استخدام التعبير البادئة، الافتراضي كائن سيد الطبقة.

وهنا مثالين:

MR_COUNT = 0 # الطبقة كائن المعرفة في الثوابت الرئيسية حدة فو
  MR_COUNT = 0
  :: MR_COUNT = 1 # لتعيين عدد العالمي 1
  MR_COUNT = 2 # تعيين عدد المحلي من 2
نهاية
يضع MR_COUNT # هذا هو ثابت عالمي يضع فو :: MR_COUNT # ما هو "فو" الثوابت المحلية 

المثال الثاني:

CONST = 'هناك'
الطبقة Inside_one
   CONST = بروك { 'هناك'}
   مواطنه where_is_my_CONST
      :: CONST + "داخل أحد"
   نهاية
نهاية
الطبقة Inside_two
   CONST = 'داخل البلدين
   مواطنه where_is_my_CONST
      CONST
   نهاية
نهاية
يضع Inside_one.new.where_is_my_CONST
يضع Inside_two.new.where_is_my_CONST
يضع كائن :: CONST + Inside_two :: CONST
يضع Inside_two :: CONST + CONST
يضع Inside_one :: CONST
يضع Inside_one :: CONST.call + Inside_two :: CONST

روبي مشغل الأسبقية

يسرد الجدول التالي بناء على المشغل الأولوية جميع المشغلين.

方法运算符描述
:: 常量解析运算符
[ ] [ ]= 元素引用、元素集合
** 指数
! ~ + - 非、补、一元加、一元减(最后两个的方法名为 +@ 和 -@)
* / % 乘法、除法、求模
+ - 加法和减法
>> << 位右移、位左移
& 位与
^ | 位异或、位或
<= < > >= 比较运算符
<=> == === != =~ !~ 相等和模式匹配运算符(!= 和 !~ 不能被定义为方法)
&& 逻辑与
|| 逻辑或
.. ... 范围(包含、不包含)
? : 三元 if-then-else
= %= { /= -= += |= &= >>= <<= *= &&= ||= **= 赋值
defined? 检查指定符号是否已定义
not 逻辑否定
or and 逻辑组成

ملاحظة:يتمتعريف العمود كأسلوب المشغل هو في الواقع وسيلة، ويمكن فوق طاقتها.