۰
subtitle
ارسال: #۱
  
Dynamic Scoping چیست؟؟؟
سلام
ببخشید من static Binding یا همون static Scoping که سوال گفته رو میدونم (مثل توضیحات خودش) {درست گفتم که static bidingآیا مساویstatic scoping هس؟؟}
حال سوال من اینجاست که :»
Dynamic دیگه چطوریه؟؟
باتشکر
ببخشید من static Binding یا همون static Scoping که سوال گفته رو میدونم (مثل توضیحات خودش) {درست گفتم که static bidingآیا مساویstatic scoping هس؟؟}
حال سوال من اینجاست که :»
Dynamic دیگه چطوریه؟؟
باتشکر
۰
ارسال: #۲
  
RE: Dynamic Scoping چیست؟؟؟
(۲۶ دى ۱۳۹۳ ۰۹:۴۱ ق.ظ)mostafa2012 نوشته شده توسط: سلام
ببخشید من static Binding یا همون static Scoping که سوال گفته رو میدونم (مثل توضیحات خودش) {درست گفتم که static bidingآیا مساویstatic scoping هس؟؟}
حال سوال من اینجاست که :»
Dynamic دیگه چطوریه؟؟
باتشکر
ما دو تا حوزه دستیابی داریم
۱- ایستا
۲- پویا
در حوزه پویا وقتی ارجاع غیر محلی داریم برای اینکه مقدار متغیرو بفهمیم چیه باید رد فراخوانی رو دنبال کنیم مثلا ما تو این سوال
تو تابع f1
داریم n=n+m
n که پارامتر رسمی f1
هستش و میشه متغیر محلی برای f1
در اینجا مقدارش ۳ هست
حالا m تو تابع f1
غیر محلی هستش باید ببینیم کجا این تابع فراخوانی شده داخل main
پس main میشه والدش و اونجا میگردیم ببینیم که آیا اعلانی برای متغیر m
پیدا میکنیم یا نه اگه بود که هیچی اگه نبود میگردیم ببینیم کی والد رو فراخوانی کرده و همین طور تا آخر
اینجا اعلان m رو پیدا میکنیم و مقدار m میشه ۳
پس شد n=3+3, n=6
و مقدارو برمیگردونه m داخل main میشه ۶
حالا تو main تابع f2
اجرا شده
داخل f2 داریم
n=n*m
n که محلی هستش میشه ۳
و m که غیر محلی هستش و می گردیم ببینیم کی فراخوانیش کرده main اونجا m= 6 هستش
n=n*m
۳*۶=n
حالا بر میگردیم
(m=m*f(3
که (f(3
شد ۱۸ و m که محلی هستش و مقدارش ۶ هست پس نتیجه میشه ۲۴
ایستا که گفتی بلدی
ارسال: #۳
  
RE: Dynamic Scoping چیست؟؟؟
(۲۶ دى ۱۳۹۳ ۱۱:۴۳ ق.ظ)bluebaran نوشته شده توسط:(26 دى ۱۳۹۳ ۰۹:۴۱ ق.ظ)mostafa2012 نوشته شده توسط: سلام
ببخشید من static Binding یا همون static Scoping که سوال گفته رو میدونم (مثل توضیحات خودش) {درست گفتم که static bidingآیا مساویstatic scoping هس؟؟}
حال سوال من اینجاست که :»
Dynamic دیگه چطوریه؟؟
باتشکر
ما دو تا حوزه دستیابی داریم
۱- ایستا
۲- پویا
در حوزه پویا وقتی ارجاع غیر محلی داریم برای اینکه مقدار متغیرو بفهمیم چیه باید رد فراخوانی رو دنبال کنیم مثلا ما تو این سوال
تو تابع f1
داریم n=n+m
n که پارامتر رسمی f1
هستش و میشه متغیر محلی برای f1
در اینجا مقدارش ۳ هست
حالا m تو تابع f1
غیر محلی هستش باید ببینیم کجا این تابع فراخوانی شده داخل main
پس main میشه والدش و اونجا میگردیم ببینیم که آیا اعلانی برای متغیر m
پیدا میکنیم یا نه اگه بود که هیچی اگه نبود میگردیم ببینیم کی والد رو فراخوانی کرده و همین طور تا آخر
اینجا اعلان m رو پیدا میکنیم و مقدار m میشه ۳
پس شد n=3+3, n=6
و مقدارو برمیگردونه m داخل main میشه ۶
حالا تو main تابع f2
اجرا شده
داخل f2 داریم
n=n*m
n که محلی هستش میشه ۳
و m که غیر محلی هستش و می گردیم ببینیم کی فراخوانیش کرده main اونجا m= 6 هستش
n=n*m
۳*۶=n
حالا بر میگردیم
(m=m*f(3
که (f(3
شد ۱۸ و m که محلی هستش و مقدارش ۶ هست پس نتیجه میشه ۲۴
ایستا که گفتی بلدی
سلام
واقعا از توضیحاتتون ممنون ......
کافی و کامل توضیح دادین....
موفق وموید!
التماس دعا..
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close