ساختار کنترل
پنج شنبه 2 دی 1389 7:35 AM
ساختار کنترل ، دارای دستور خاصی در اسمالتک نمی باشد. در عوض اسمالتک آن را با فرستادن پیغام به شی انجام می دهد. برای مثال شرط اجرا در صورتی که درست بود با فرستادن پیغام به شی بولی آن را انجام می دهد. سپس آن را بعنوان یک آرگومان بلاکی از کد شروع به اجرا کردن میکند اگر و تنها اگر دریافت شی بولی درست باشد. این قطعه از کد توضیح بالا را نمایش می دهد:
result := a > b ifTrue:[ 'greater' ] ifFalse:[ 'less' ]
بلاکها نیز برای اجرای ساختار کنترلی تعریف شده توسط کاربر ،مشاهدهها و .. کاربرد دارند برای مثال:
| aString vowels | aString := 'This is a string'. vowels := aString select: [:aCharacter | aCharacter isVowel].
در خط آخر پیغامی که فرستاده میشود توسط select: با یک آرگومانی که بصورت بلاک کد ثابت است معین می شود. بلاک کد ثابت بعنوان خبر دادن به یک تابعی که باید جواب صحیح بودن را بدهد اگر و تنها اگر یک المان از رشته در مجموعه ای از رشتهها که توسط کد ثابت فرستاده شده موجود باشد.