الفرق بين المراجعتين لصفحة: «Ruby/Symbol»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: | <noinclude>{{DISPLAYTITLE:الصنف <code>Symbol</code> في روبي}}</noinclude> | ||
[[تصنيف: Ruby]] | [[تصنيف: Ruby]] | ||
[[تصنيف: Ruby Class]] | |||
[[تصنيف: Ruby Symbol]] | [[تصنيف: Ruby Symbol]] | ||
تمثل كائنات الصنف <code>Symbol</code> أسماء و<nowiki/>[[Ruby/String|سلاسل نصية]] داخل مترجم (interpreter) روبي. يمكن إنشاؤها باستخدام الصياغتين الحرفيتين <code>:name</code> و <code>:"string"</code>، أو بواسطة التوابع <code>[[Ruby/Symbol/to_sym|to_sym]]</code>. | تمثل كائنات الصنف <code>Symbol</code> أسماء و<nowiki/>[[Ruby/String|سلاسل نصية]] داخل مترجم (interpreter) روبي. يمكن إنشاؤها باستخدام الصياغتين الحرفيتين <code>:name</code> و <code>:"string"</code>، أو بواسطة التوابع <code>[[Ruby/Symbol/to_sym|to_sym]]</code>. | ||
سيتم إنشاء نفس الرمز ( | سيتم إنشاء نفس الرمز (نفس الكائن <code>Symbol</code>) لاسم أو [[Ruby/String|سلسلة نصية]] معينة طوال مدة تنفيذ البرنامج، بغض النظر عن السياق أو معنى هذا الاسم. وبالتالي، إن كان <code>Fred</code> ثابتًا في سياق معيّن، وتابعًا في سياق آخر، وصنفًا في سياق ثالث، فسيكون الرمز <code>Symbol :Fred</code> نفس الكائن في جميع السياقات الثلاث. | ||
<syntaxhighlight lang="ruby">module One | <syntaxhighlight lang="ruby">module One | ||
class Fred | class Fred | ||
سطر 20: | سطر 21: | ||
$f2.object_id #=> 2514190 | $f2.object_id #=> 2514190 | ||
$f3.object_id #=> 2514190</syntaxhighlight> | $f3.object_id #=> 2514190</syntaxhighlight> | ||
==توابع الصنف العامة | ==توابع الصنف العامة== | ||
===[[Ruby/Symbol/all_symbols | | ===[[Ruby/Symbol/all_symbols |<code>all_symbols</code>]]=== | ||
يُعيد | يُعيد [[Ruby/Array|مصفوفة]] تضم جميع الرموز الموجودة حاليًا في جدول رموز روبي. | ||
== توابع النسخ العامة | == توابع النسخ العامة == | ||
===[[Ruby/Symbol/compar_operator | | ===[[Ruby/Symbol/compar_operator |<code><=></code>]]=== | ||
يقارن بين رمزين ثم يعيد <code>-1</code> أو <code>0</code> أو <code>+1</code> بناءً على ما إذا كان الرمز الأول أصغر من أو يساوي أو أكبر من الرمز الثاني. | |||
===[[Ruby/Symbol/equality_operator |<code>==</code>]]=== | |||
يتحقق من تساوي رمزين أي إن كان هذان الرمزان هما نفس الرمز. | |||
===[[Ruby/Symbol/case_equality |<code>===</code>]]=== | |||
يتحقق إن كان رمزان هما نفس الرمز. | |||
===[[Ruby/Symbol/3D~ |<code>~=</code>]]=== | |||
يعيد ناتج التعبير <code>sym.to_s =~ obj</code>. | |||
===[[Ruby/Symbol/index_operator |<code>[]</code>]]=== | |||
===[[Ruby/Symbol/ | |||
== | |||
يتحقق | |||
===[[Ruby/Symbol/ | |||
=== | |||
===[[Ruby/Symbol/ | |||
يعيد | |||
= | |||
===[[Ruby/Symbol/ | |||
يعيد ناتج التعبير <code>sym.to_s[]</code>. | يعيد ناتج التعبير <code>sym.to_s[]</code>. | ||
===[[Ruby/Symbol/ | ===[[Ruby/Symbol/capitalize |<code>capitalize</code>]]=== | ||
يشبه التعبير <code>sym.to_s.capitalize.intern</code>. | |||
===[[Ruby/Symbol/ | ===[[Ruby/Symbol/casecmp |<code>casecmp</code>]]=== | ||
يقارن بين رمزين بشكل غير حساس لحالة الأحرف. | |||
===[[Ruby/Symbol/ | ===[[Ruby/Symbol/casecmp-3F |<code>casecmp?</code>]]=== | ||
يعيد | يتحقق إن كان الرمز الذي استُدعي معه والرمز المُمرَّر إليه متساويين بشكل غير حساس لحالة الأحرف. | ||
===[[Ruby/Symbol/to_s | | ===[[Ruby/Symbol/downcase |<code>downcase</code>]]=== | ||
يعيد | يشبه التعبير <code>sym.to_s.downcase.intern</code>. | ||
===[[Ruby/Symbol/ | ===[[Ruby/Symbol/empty-3F |<code>empty?</code>]]=== | ||
يتحقق مما إذا كان الرمز فارغًا. | |||
===[[Ruby/Symbol/ | ===[[Ruby/Symbol/encoding |<code>encoding</code>]]=== | ||
يُعيد الترميز الذي يمثل الرمز التي استُدعي معه. | |||
===[[Ruby/Symbol/id2name |<code>id2name</code>]]=== | |||
يعيد الاسم أو ال[[Ruby/String|سلسلة نصية]] التي تمثل الرمز. | |||
===[[Ruby/Symbol/inspect |<code>inspect</code>]]=== | |||
يعيد تمثيلًا نصيًا للرمز التي استُدعي معه على هيئة رمز حرفي (symbol literal). | |||
===[[Ruby/Symbol/intern |<code>intern</code>]]=== | |||
يعيد بشكل عام الرمز المقابل لكائن ما. لذلك، عند استدعائه مع رمز، فسيعيد الرمز نفسه. | |||
===[[Ruby/Symbol/length |<code>length</code>]]=== | |||
يشبه التعبير <code>sym.to_s.length</code>. | |||
===[[Ruby/Symbol/match |<code>match</code>]]=== | |||
يعيد ناتج التعبير <code>sym.to_s.match</code>. | |||
===[[Ruby/Symbol/match-3F |<code>match?</code>]]=== | |||
يعيد ناتج التعبير <code>sym.to_s.match?</code>. | |||
===[[Ruby/Symbol/next |<code>next</code>]]=== | |||
يشبه التعبير <code>sym.to_s.succ.intern</code>. | |||
===[[Ruby/Symbol/size |<code>size</code>]]=== | |||
يشبه التعبير <code>sym.to_s.length</code>. | |||
===[[Ruby/Symbol/slice |<code>slice</code>]]=== | |||
يعيد ناتج التعبير <code>sym.to_s[]</code>. | |||
===[[Ruby/Symbol/succ |<code>succ</code>]]=== | |||
يشبه التعبير <code>sym.to_s.succ.intern</code>. | |||
===[[Ruby/Symbol/swapcase |<code>swapcase</code>]]=== | |||
يشبه التعبير <code>sym.to_s.swapcase.intern</code>. | |||
===[[Ruby/Symbol/to_proc |<code>to_proc</code>]]=== | |||
يعيد كائنًا من النوع <nowiki/>[[Ruby/Proc|<code>Proc</code>،]] والذي يستجيب للتابع المعطى من قبل <nowiki/>[[Ruby/Symbol|الرمز]]. | |||
===[[Ruby/Symbol/to_s |<code>to_s</code>]]=== | |||
يعيد الاسم أو ال[[Ruby/String|سلسلة نصية]] التي تمثل الرمز. | |||
===[[Ruby/Symbol/to_sym |<code>to_sym</code>]]=== | |||
يعيد بشكل عام الرمز المقابل لكائن. لذلك، عند استدعائه مع رمز، فسيعيد هذا الرمز نفسه (يعيد الكائن <code>self</code>). | |||
===[[Ruby/Symbol/upcase |<code>upcase</code>]]=== | |||
يشبه التعبير <code>sym.to_s.upcase.intern</code>. | |||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Symbol.html | *[http://ruby-doc.org/core-2.5.1/Symbol.html صفحة الصنف Symbol في توثيق روبي الرسمي.] |
المراجعة الحالية بتاريخ 09:39، 5 ديسمبر 2018
تمثل كائنات الصنف Symbol
أسماء وسلاسل نصية داخل مترجم (interpreter) روبي. يمكن إنشاؤها باستخدام الصياغتين الحرفيتين :name
و :"string"
، أو بواسطة التوابع to_sym
.
سيتم إنشاء نفس الرمز (نفس الكائن Symbol
) لاسم أو سلسلة نصية معينة طوال مدة تنفيذ البرنامج، بغض النظر عن السياق أو معنى هذا الاسم. وبالتالي، إن كان Fred
ثابتًا في سياق معيّن، وتابعًا في سياق آخر، وصنفًا في سياق ثالث، فسيكون الرمز Symbol :Fred
نفس الكائن في جميع السياقات الثلاث.
module One
class Fred
end
$f1 = :Fred
end
module Two
Fred = 1
$f2 = :Fred
end
def Fred()
end
$f3 = :Fred
$f1.object_id #=> 2514190
$f2.object_id #=> 2514190
$f3.object_id #=> 2514190
توابع الصنف العامة
all_symbols
يُعيد مصفوفة تضم جميع الرموز الموجودة حاليًا في جدول رموز روبي.
توابع النسخ العامة
<=>
يقارن بين رمزين ثم يعيد -1
أو 0
أو +1
بناءً على ما إذا كان الرمز الأول أصغر من أو يساوي أو أكبر من الرمز الثاني.
==
يتحقق من تساوي رمزين أي إن كان هذان الرمزان هما نفس الرمز.
===
يتحقق إن كان رمزان هما نفس الرمز.
~=
يعيد ناتج التعبير sym.to_s =~ obj
.
[]
يعيد ناتج التعبير sym.to_s[]
.
capitalize
يشبه التعبير sym.to_s.capitalize.intern
.
casecmp
يقارن بين رمزين بشكل غير حساس لحالة الأحرف.
casecmp?
يتحقق إن كان الرمز الذي استُدعي معه والرمز المُمرَّر إليه متساويين بشكل غير حساس لحالة الأحرف.
downcase
يشبه التعبير sym.to_s.downcase.intern
.
empty?
يتحقق مما إذا كان الرمز فارغًا.
encoding
يُعيد الترميز الذي يمثل الرمز التي استُدعي معه.
id2name
يعيد الاسم أو السلسلة نصية التي تمثل الرمز.
inspect
يعيد تمثيلًا نصيًا للرمز التي استُدعي معه على هيئة رمز حرفي (symbol literal).
intern
يعيد بشكل عام الرمز المقابل لكائن ما. لذلك، عند استدعائه مع رمز، فسيعيد الرمز نفسه.
length
يشبه التعبير sym.to_s.length
.
match
يعيد ناتج التعبير sym.to_s.match
.
match?
يعيد ناتج التعبير sym.to_s.match?
.
next
يشبه التعبير sym.to_s.succ.intern
.
size
يشبه التعبير sym.to_s.length
.
slice
يعيد ناتج التعبير sym.to_s[]
.
succ
يشبه التعبير sym.to_s.succ.intern
.
swapcase
يشبه التعبير sym.to_s.swapcase.intern
.
to_proc
يعيد كائنًا من النوع Proc
، والذي يستجيب للتابع المعطى من قبل الرمز.
to_s
يعيد الاسم أو السلسلة نصية التي تمثل الرمز.
to_sym
يعيد بشكل عام الرمز المقابل لكائن. لذلك، عند استدعائه مع رمز، فسيعيد هذا الرمز نفسه (يعيد الكائن self
).
upcase
يشبه التعبير sym.to_s.upcase.intern
.