الفرق بين المراجعتين لصفحة: «Ruby/Location»
< Ruby
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: صفحة الصنف <code>Location</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Locationتمثّل كائنا...' |
لا ملخص تعديل |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: صفحة الصنف <code>Location</code> في روبي}}</noinclude> | <noinclude>{{DISPLAYTITLE: صفحة الصنف <code>Location</code> في روبي}}</noinclude> | ||
[[تصنيف: Ruby]] | [[تصنيف: Ruby]] | ||
[[تصنيف: Ruby Location]]تمثّل كائنات الصنف [[Ruby/Location|Location]] أُطُر التكديس (stack frames)، وتُنشأ بواسطة <code>[[Ruby/Kernel/caller_locations|Kernel#caller_locations]]</code>. | [[تصنيف: Ruby Location]] | ||
تمثّل كائنات الصنف [[Ruby/Location|Location]] أُطُر التكديس (stack frames)، وتُنشأ بواسطة التابع <code>[[Ruby/Kernel/caller_locations|Kernel#caller_locations]]</code>. | |||
مثلا: | مثلا: | ||
سطر 36: | سطر 37: | ||
init.rb:8:in `new' | init.rb:8:in `new' | ||
init.rb:8:in `<main>'</syntaxhighlight> | init.rb:8:in `<main>'</syntaxhighlight> | ||
==توابع | ==توابع النسخة العامة (Public Instance Methods)== | ||
===[[Ruby/Location/absolute_path | التابع absolute_path]]=== | ===[[Ruby/Location/absolute_path | التابع absolute_path]]=== | ||
يُعيد التابع <code>absolute_path</code> مسار الملف الكامل | يُعيد التابع <code>absolute_path</code> مسار الملف الكامل لل[[Ruby/Location|إطار]]. | ||
===[[Ruby/Location/base_label | التابع base_label]]=== | ===[[Ruby/Location/base_label | التابع base_label]]=== | ||
يعيد التابع <code>base_label</code> التسمية الأساسية (base label) لهذا [[Ruby/Location|الإطار]]. | يعيد التابع <code>base_label</code> التسمية الأساسية (base label) لهذا [[Ruby/Location|الإطار]]. | ||
===[[Ruby/Location/inspect | التابع inspect]]=== | ===[[Ruby/Location/inspect | التابع inspect]]=== | ||
يُعيد التابع <code>inspect</code> نفس نتيجة استدعاء <code>inspect</code> على التمثيل النصي للتابع to_str | يُعيد التابع <code>inspect</code> نفس نتيجة استدعاء <code>inspect</code> على التمثيل النصي للتابع <code>to_str</code> | ||
===[[Ruby/Location/label | التابع label]]=== | ===[[Ruby/Location/label | التابع label]]=== | ||
يعيد التابع <code>label</code> تسمية هذا [[Ruby/Location|الإطار]]. | يعيد التابع <code>label</code> تسمية هذا [[Ruby/Location|الإطار]]. |
مراجعة 16:10، 6 نوفمبر 2018
تمثّل كائنات الصنف Location أُطُر التكديس (stack frames)، وتُنشأ بواسطة التابع Kernel#caller_locations
.
مثلا:
# caller_locations.rb
def a(skip)
caller_locations(skip)
end
def b(skip)
a(skip)
end
def c(skip)
b(skip)
end
c(0..2).map do |call|
puts call.to_s
end
تشغيل الأمر ruby caller_locations.rb
سوف ينتج:
caller_locations.rb:2:in `a'
caller_locations.rb:5:in `b'
caller_locations.rb:8:in `c'
إليك مثالًا آخر بنتيجة مختلفة بعض الشيء:
# foo.rb
class Foo
attr_accessor :locations
def initialize(skip)
@locations = caller_locations(skip)
end
end
Foo.new(0..2).locations.map do |call|
puts call.to_s
end
الآن، إن قمت بتنفيذ ruby foo.rb
، فيجب أن ترى المخرجات التالية:
init.rb:4:in `initialize'
init.rb:8:in `new'
init.rb:8:in `<main>'
توابع النسخة العامة (Public Instance Methods)
التابع absolute_path
يُعيد التابع absolute_path
مسار الملف الكامل للإطار.
التابع base_label
يعيد التابع base_label
التسمية الأساسية (base label) لهذا الإطار.
التابع inspect
يُعيد التابع inspect
نفس نتيجة استدعاء inspect
على التمثيل النصي للتابع to_str
التابع label
يعيد التابع label
تسمية هذا الإطار.
التابع lineno
يعيد التابع lineno
رقم سطر هذا الإطار.
التابع path
يُعيد اسم ملف هذا الإطار.
التابع to_s
يُعيد التابع to_s
سلسلة نصية تمثل هذا الإطار على نمط التابع Kernel#caller
.