အမည်
expr - တစ်ဦးစကားရပ်ကိုအကဲ
အနှစ်ချုပ်
arg expr? arg arg ... ?
Concatenates arg 's (သူတို့ကိုအကြား separator နေရာများဖြည့်စွက်), တစ်ဦး TCL စကားရပ်အတိုင်းရလဒ်တန်ဖိုးနှင့်တန်ဖိုးကို return ပွနျ။ TCL အသုံးအနှုန်းတွေအတွက်ခွင့်ပြုအဆိုပါအော်ပရေတာကို C အသုံးအနှုန်းတွေအတွက်ခွင့်ပြုထားသောအော်ပရေတာများ၏အပိုင်းတစ်ပိုင်းကိုသာလျှင်ဖြစ်ကြသည်ကို၎င်း, သူတို့သက်ဆိုင်ရာကို C အော်ပရေတာအဖြစ်အတူတူအဓိပ္ပာယ်ကိုနှင့်စားပေးမှုရှိသည်။ အသုံးအနှုန်းတွေနီးပါးအမြဲ ဂဏန်းရလဒ်များကိုလိုက်လျော (integer ဖြစ်တဲ့အတွက်သို့မဟုတ် floating-point တန်ဖိုးများ) ။ ဥပမာအားဖြင့်, ဟူသောအသုံးအနှုနျး
expr 8.2 + 614.2 တန်ဖိုး။ TCL အသုံးအနှုန်းတွေ operands သတ်မှတ်ထားသောသောလမ်းအတွက်ကို C အသုံးအနှုန်းတွေကနေကွဲပြား။ ဒါ့အပြင် TCL အသုံးအနှုန်းတွေကို non-numeric operands နှင့် string ကိုနှိုင်းယှဉ်ထောက်ခံပါတယ်။
Operands
တစ်ဦးက TCL စကားရပ် operands, အော်ပရေတာများနှင့်ကွင်းများပေါင်းစပ်ပါဝင်ပါသည်။ white space ဟာ operands နှင့်အော်ပရေတာများနှင့်ကွင်းများအကြားအသုံးပြုလိမ့်မည် ကစကားရပ်ရဲ့ညွှန်ကြားချက်အားဖြင့်လစ်လျူရှုသည်။ အဘယ်မှာဖြစ်နိုင် operands ကိန်းတန်ဖိုးများအဖြစ်အဓိပ္ပာယ်ကောက်ယူနေကြသည်။ (ထို operand ၏ပထမဦးဆုံးနှစ်ဦးကိုဇာတ်ကောင် 0x နေကြသည်လျှင်), ဒါမှမဟုတ် hexadecimal အတွက် (ထို operand ၏ပထမဦးဆုံးဇာတ်ကောင် 0 လျှင်) integer တန်ဖိုးများကို octal အတွက်ဒဿမ (ပုံမှန်ကိစ္စတွင်) တွင်သတ်မှတ်ထားသောနိုင်ပါသည်။ တစ်ဦး operand အထက်တွင်ပေးသောကိန်းကို formats ၏တဦးတည်းရှိသည်မဟုတ်ပါဘူးဆိုရင်ကြောင့်ဖြစ်နိုင်လျှင်, ကမျော-point အရေအတွက်ကအဖြစ်ကုသနေပါတယ်။ Floating-အမှတ်နံပါတ်များကို (ဌ, သော, f မှလွဲ. က F, နဲ့ L နောက်ဆက်အများဆုံးတပ်ဆင်အတွက်ခွင့်ပြုလိမ့်မည်မဟုတ်ပေ) တစ်ဦးကို ANSI-compliant ကို C compiler ကလက်ခံနည်းလမ်းမဆိုသတ်မှတ်ထားသောနိုင်ပါသည်။ 2.1, 3, 6e4, 7.91e + 16: ဥပမာ, အောက်ပါအားလုံးတို့ကိုခိုင်လုံသော floating-point နံပါတ်များကိုဖြစ်ကြသည်။ အဘယ်သူမျှမဂဏန်းအနက်ကိုဖြစ်နိုင်လျှင်, တစ်ဦး operand တစ်ဦး string ကိုအဖြစ်ကျန်ရစ်၏ (နှင့်အော်ပရေတာကသာကန့်သတ်ထားကလျှောက်ထားစေခြင်းငှါ) ။
Operands အောက်ပါနည်းလမ်းများကိုမဆိုအတွက်သတ်မှတ်ထားသောစေခြင်းငှါ:
[1]
တစ်ဂဏန်းတန်ဖိုးကိန်းသို့မဟုတ် floating-point ဖြစ်စေအမျှ။
[2]
တစ်ဦး TCL variable ကိုအမျှစံ $ သင်္ကေတကိုသုံးနိုင်သည်။ အဆိုပါ variable ကိုရဲ့တန်ဖိုး operand အဖြစ်အသုံးပြုလိမ့်မည်။
[3]
ကို double-ကိုးကားအတွက်ပူးတွဲတစ်ဦး string ကိုအမျှ။ ဟူသောအသုံးအနှုနျး parser ကိုပုကိုးကားအကြားသတင်းအချက်အလက်များအပေါ်ဘယ်ဘက်မျဉ်းစောင်း, variable ကိုနှင့် command ကိုအစားထိုးလုပ်ဆောင်လျက်, operand အဖြစ်ရရှိလာတဲ့တန်ဖိုးကိုသုံးပါလိမ့်မယ်
[4]
မသန်စွမ်းပဲအတွက်ပူးတွဲတစ်ဦး string ကိုအမျှ။ ဖွင့်သတ္တုအထိမ်းအချုပ်နှင့်ကိုက်ညီနီးစပ်သတ္တုအထိမ်းအချုပ်အကြားအဆိုပါဇာတ်ကောင်ကိုမဆိုအစားထိုးမရှိဘဲ operand အဖြစ်အသုံးပြုလိမ့်မည်။
[5]
တစ်ဦး TCL command ကိုအမျှကွင်းခတ်အတွက်ပူးတွဲ။ အဆိုပါ command ကို execute လုပ်ပါလိမ့်မည်နှင့်၎င်း၏ရလဒ် operand အဖြစ်အသုံးပြုလိမ့်မည်။
[6]
အဘယ်သူ၏ငြင်းခုံထိုကဲ့သို့သောအပြစ်တရား ($ x ကို) အဖြစ် operands များအတွက်အထက်ပါပုံစံမဆိုရှိတစ်ဦးသင်္ချာ function ကိုအမျှ။ သတ်မှတ်လုပ်ဆောင်ချက်များကိုများစာရင်းကိုအောက်တွင်ဖော်ပြထားသည်ကြည့်ရှုပါ။
အစားထိုး (ကိုးကားညှို့အတွင်းပိုင်းဥပမာ) အထက်ဖြစ်ပေါ်ဘယ်မှာသူတို့ဟူသောအသုံးအနှုနျးရဲ့ညွှန်ကြားချက်အားဖြင့်ဖျော်ဖြေကြသည်။ ဟူသောအသုံးအနှုနျး Processor ကိုကိုခေါ်ခင်သို့သော်အစားထိုးတစ်ခုအပိုဆောင်းအလွှာပြီးသားအမိန့် parser ကိုတို့ကဖျော်ဖြေခဲ့ကြပေမည်။ အောက်တွင်ဖော်ပြထားသောဆွေးနွေးထားတဲ့အတိုင်းက contents တွေကိုအပေါ်အစားထိုးဖျော်ဖြေကနေ command ကို parser ကိုကာကွယ်တားဆီးဖို့ဆီကိုဦးအတွက်အသုံးအနှုနျးမြားခိုင်ခံ့ဖို့များသောအားဖြင့်အကောင်းဆုံးဖြစ်သည်။
ရိုးရှင်းအသုံးအနှုန်းတွေအချို့ကိုဥပမာအဘို့, variable ကိုတစ်ဦးတန်ဖိုး 3 ရှိပြီးအဆိုပါ variable ကိုခတန်ဖိုး 6. ရှိပါတယ်ထိုအခါအောက်ကလိုင်းချင်းစီ၏လက်ဝဲဘက်အပေါ် command ကိုမျဉ်း၏ညာဘက်အခြမ်းအပေါ်တန်ဖိုးထုတ်လုပ်ပါလိမ့်မယ်ဆိုပါစို့:
expr 3.1 + $ a6.1 expr 2 + "$ တစ်ဦး။ $ b", 5.6 expr 4 * 8 expr {{စကားလုံးတဦးတည်း} < "စကားလုံး $ တစ်ဦး"} 0 [ "6 2" llength]အော်ပရေတာ
အဆိုပါခိုင်လုံသောအော်ပရေတာ, အောက်တွင်ဖော်ပြထားသောစားပေးမှု၏အမိန့်လျော့ကျလာအတွက်အုပ်စုဖွဲ့နေကြသည်:
- + ~!
Unary အနုတ်, unary ပေါင်း, နည်းနည်းပညာရှိမဟုတ်ပါ, ယုတ္တိမဟုတ်ပါ။ ဤအ operands အဘယ်သူအားမျှ string ကို operands အသုံးချခံရစေခြင်းငှါ, နည်းနည်းပညာသာကိန်းမှလျှောက်ထားစေခြင်းငှါမ။
* /%
များပြား, သွေးခွဲ, ကျန်ရှိသော။ ဤအ operands အဘယ်သူအားမျှ string ကို operands အသုံးချခံရစေခြင်းငှါ, ကျန်ရှိသောသာကိန်းမှလျှောက်ထားနိုင်ပါသည်။ ကျန်ရှိသောအမြဲတမ်း divisor နှင့် divisor ထက်သေးငယ်တစ်ဦးအကြွင်းမဲ့အာဏာတန်ဖိုးကိုကဲ့သို့တူညီသောလက္ခဏာသက်သေရှိပါလိမ့်မယ်။
+ -
Add နှင့်နုတ်။ မည်သည့်ဂဏန်း operands များအတွက်သက်တမ်းရှိ။
<< >>
လက်ဝဲနှင့်လက်ယာပြောင်းကုန်ပြီ။ သာကိန်း operands များအတွက်သက်တမ်းရှိ။ တစ်ဦးကညာဘက်ကိုပြောင်းကုန်ပြီအမြဲနိမိတ်လက္ခဏာနည်းနည်းပျံ့နှံ့ရောက်ရှိသွားသည်။
<> <=> =
boolean ထက်နည်း, သာ. ကြီးမြတ်, လျော့နည်းသို့မဟုတ်တန်းတူညီမျှခြင်း, ထက် သာ. ကြီးမြတ်သို့မဟုတ်ညီမျှ။ အခြေအနေကို 0 င်မဟုတ်ရင်, မှန်သည်ဆိုပါကတစ်ဦးချင်းစီအော်ပရေတာ 1 ထုတ်လုပ်သည်။ ဤရွေ့ကားအော်ပရေတာကိစ္စ string ကိုနှိုင်းယှဉ်ရာတွင်အသုံးပြုသည်သော, ညှို့အဖြစ်ဂဏန်း operands မှလျှောက်ထားနိုင်ပါသည်။
==! =
တန်းတူနှင့်တန်းတူမဟုတ် boolean ။ တစ်ခုချင်းစီကိုအော်ပရေတာတစ်ဦးသုည / ရလဒျတစျခုထုတ်လုပ်သည်။ အားလုံး operand အမျိုးအစားများများအတွက်သက်တမ်းရှိ။
&
bit ပညာရှိနှင့်။ သာကိန်း operands များအတွက်သက်တမ်းရှိ။
^
bit ပညာရှိသီးသန့် OR ။ သာကိန်း operands များအတွက်သက်တမ်းရှိ။
|
bit ပညာရှိ OR ။ သာကိန်း operands များအတွက်သက်တမ်းရှိ။
&&
ယုတ္တိဗေဒနှင့်။ မဟုတ်ရင်နှစ်ဦးစလုံး operands Non-သုညလျှင်, 1 ရလဒ်ထုတ်လုပ် 0 င်။ boolean နှင့်ဂဏန်း (ကိန်းသို့မဟုတ် floating-point) အတွက်သက်တမ်းရှိသာ operands ။
||
logical OR ။ နှစ်ဦးစလုံး operands မဟုတ်ရင်သုည, 1 မှန်လျှင်တစ်ဦး 0 င်ရလဒ်ထုတ်လုပ်သည်။ boolean နှင့်ဂဏန်း (ကိန်းသို့မဟုတ် floating-point) အတွက်သက်တမ်းရှိသာ operands ။
x က? y က: z
အကယ်. -ထို့နောက်-တခြား, C တို့၌ရှိသကဲ့သို့ x ကို Non-သုညတန်ဖိုးလျှင်, ထိုရလဒ်က y ၏တန်ဖိုးသည်။ ဒီလိုမှမဟုတ်ရင်ရလဒ် z ရဲ့တန်ဖိုးဖြစ်ပါတယ်။ အဆိုပါ x ကို operand တစ်ဂဏန်းတန်ဖိုးကိုရှိရမည်။
တစ်ဦးချင်းစီအော်ပရေတာများကထုတ်လုပ်ရလဒ်များအပေါ်အသေးစိတ်များအတွက်ကို C ကို manual ကြည့်ရှုပါ။ အဆိုပါအားလုံးသည် ထို binary အော်ပရေတာ အုပ်စုကို left-to-ညာဘက်အတူတူစားပေးမှုအဆင့်ကိုအတွင်း။ ဥပမာ, command ကို
* 2 expr 4 <7ပြန် 0 င်။
အဆိုပါ &&, || နှင့်? အော်ပရေတာသူတို့ရလဒ်ကိုဆုံးဖြတ်ရန်မလိုအပ်လျှင် operands အကဲဖြတ်ကြသည်မဟုတ်ဆိုလိုတာကရုံကို C ၌ရှိသကဲ့သို့, '' `` ပျင်းရိအကဲဖြတ် '' ရှိသည်။ ဥပမာ, command ကိုအတွက်
expr {$ v? [တစ်]: [ခ]}တစ်ဦးတည်းသာ [တစ်] ဒါမှမဟုတ် [ခ] အမှန်တကယ် $ v ၏တန်ဖိုးအပေါ်မူတည်ပြီးအကဲဖြတ်လိမ့်မည်။ တစ်ခုလုံးကိုစကားရပ်ဆီကိုဦးအတွက်ပူးတွဲလျှင်ဤသာမှန်ကြောင်း, သို့သော်မှတ်ချက်; မဟုတ်ရင်, ထို TCL parser ကိုပု expr command ကိုသွန်းလောင်းပေးမတိုင်မီနှစ်ဦးစလုံး [တစ်] နှင့် [ခ] အကဲဖြတ်ပါလိမ့်မယ်။
သင်္ချာ Functions များ
TCL အသုံးအနှုန်းတွေအတွက်အောက်ပါသင်္ချာ functions တွေထောက်ခံပါတယ်:
int sinh cos fmod ပတ်ပတ်လည်မျက်နှာကျက် hypot အပြစ်တရား atan2 ABS cosh sqrt acos log နှစ်ဆ log10 srand asin EXP Pow tan atan ကြမ်းပြင်ကျပန်း tanhABS (arg)
arg ရဲ့ absolute value Returns ။ Arg integer ဖြစ်တဲ့အတွက်သို့မဟုတ် floating-point ဖြစ်စေဖြစ်နိုင်သည်နှင့်, ရလဒ်တူညီ form မှာပြန်ရောက်နေပါတယ်။
acos (arg)
အကွာအဝေးအတွက် arg ၏ကို arc ကိုဆိုင်း Returns [0, pi] radians ။ Arg အကွာအဝေး [-1,1] အတွက်ဖြစ်သင့်ပါတယ်။
asin (arg)
အကွာအဝေးအတွက် arg ၏ကို arc sine Returns [-pi / 2, pi / 2] radians ။ Arg အကွာအဝေး [-1,1] အတွက်ဖြစ်သင့်ပါတယ်။
atan (arg)
အကွာအဝေးအတွက် arg ၏ကို arc တန်းဂျ Returns [-pi / 2, pi / 2] radians ။
atan2 (x, y)
အကွာအဝေး [-pi, pi] radians အတွက်က y / x ရဲ့ကို arc တန်းဂျ Returns ။ x နှင့် y ကနှစ်ဦးစလုံး 0 င်မဖြစ်နိုင်ပါ။
မျက်နှာကျက် (arg)
arg ထက်မနည်းအသေးဆုံးကိန်းရဲ့တန်ဖိုးကို Returns ။
cos (arg)
radians အတွက်တိုင်းတာ, arg ၏ဆိုင်း Returns ။
cosh (arg)
arg ၏ခြဲ့ကားပွောကိုဆိုင်း Returns ။ ရလဒ်အနေနဲ့လျတ်ဖြစ်ပေါ်စေမည်ဟုဆိုလျှင်, မှားယွင်းမှုတစ်ခုပြန်ရောက်နေပါတယ်။
နှစ်ဆ (arg)
arg တစ်ဦးရေပေါ်တန်ဖိုးကိုဖြစ်လျှင်, arg ပြန်လည်ရောက်ရှိ, မဟုတ်ရင် floating မှ arg ပြောင်းပေးနှင့်ပြောင်းလဲတန်ဖိုးကို return ပွနျ။
EXP (arg)
အီး ** arg အဖြစ်သတ်မှတ်, arg ၏အဆ Returns ။ ရလဒ်အနေနဲ့လျတ်ဖြစ်ပေါ်စေမည်ဟုဆိုလျှင်, မှားယွင်းမှုတစ်ခုပြန်ရောက်နေပါတယ်။
ကြမ်းပြင် (arg)
arg ထက် သာ. ကြီးမြတ်အကြီးဆုံးအရေးပါသောတန်ဖိုးကို Returns ။
fmod (x, y)
y ကအားဖြင့် x ရဲ့ဌာနခွဲများ၏ရေပေါ်-အမှတ်ကျန်ရှိသော Returns ။ y က 0 င်ဖြစ်လျှင်, မှားယွင်းမှုတစ်ခုပြန်ရောက်နေပါတယ်။
hypot (x, y)
တစ်ဦးကို right-angled တြိဂံ (က x * X + y ကို * y က) ၏ hypotenuse ၏အရှည် Computes ။
int (arg)
arg အနေနဲ့ integer ဖြစ်တဲ့အတွက်တန်ဖိုးအားဖြစ်တယ်ဆိုရင်, arg ပြန်လည်ရောက်ရှိ, မဟုတ်ရင်ခြင်းကိုအားဖြင့်ကိန်းမှ arg ပြောင်းပေးနှင့်ပြောင်းလဲတန်ဖိုးကို return ပွနျ။
မှတ်တမ်း (arg)
arg ၏သဘာဝလော်ဂရစ်သမ် Returns ။ Arg တစ်ဦးအပြုသဘောတန်ဖိုးကိုဖြစ်ရမည်။
log10 (arg)
arg ၏အခြေစိုက်စခန်း 10 ခုလော်ဂရစ်သမ် Returns ။ Arg တစ်ဦးအပြုသဘောတန်ဖိုးကိုဖြစ်ရမည်။
Pow (x, y)
ပါဝါ y ကိုမှထမြောက်တော်မူ x ရဲ့တန်ဖိုးကို Computes ။ x ကအနုတ်ဆိုလျှင်, y ကိုတစ်ဦး integer ဖြစ်တဲ့အတွက်တန်ဖိုးအားဖြစ်ရပါမည်။
ကျပန်း ()
တစ်ဦးရေပေါ်အမှတ်သုညကနေပဲဒီထက်တဦးတည်းထက်မှနံပါတ်သို့မဟုတ်, သင်္ချာဝေါဟာရများအတွက်အကွာအဝေး [0,1) Returns ။ အမျိုးအနွယ်ကိုစက်၏ပြည်တွင်းရေးနာရီမှလာဒါမှမဟုတ် srand function ကိုနှင့်အတူလက်စွဲသတ်မှတ်ထားနိုင်ပါသည်။
ပတ်ပတ်လည် (arg)
arg အနေနဲ့ integer ဖြစ်တဲ့အတွက်တန်ဖိုးအားဖြစ်တယ်ဆိုရင်, arg ပြန်လည်ရောက်ရှိ, မဟုတ်ရင်ရှာနိုင်ပါတယ်အားဖြင့်ကိန်းမှ arg ပြောင်းပေးနှင့်ပြောင်းလဲတန်ဖိုးကို return ပွနျ။
အပြစ်တရား (arg)
radians အတွက်တိုင်းတာ, arg ၏ sine Returns ။
sinh (arg)
arg ၏ခြဲ့ကားပွော sine Returns ။ ရလဒ်အနေနဲ့လျတ်ဖြစ်ပေါ်စေမည်ဟုဆိုလျှင်, မှားယွင်းမှုတစ်ခုပြန်ရောက်နေပါတယ်။
sqrt (arg)
arg ၏စတုရန်းအမြစ် Returns ။ Arg Non-အနုတ်လက္ခဏာဖြစ်ရပါမည်။
srand (arg)
တစ်ခုကိန်းဖြစ်ရမည်သော arg သည်, ကျပန်းနံပါတ်တစ်ခုမီးစက်များအတွက်အမျိုးအနွယ်ကို reset ကိုအသုံးပြုသည်။ ကြောင်းအမြိုးအနှယျမှပထမဦးဆုံးကျပန်းနံပါတ်တစ်ခု Returns ။ တစ်ခုချင်းစီကိုစကားပြန်၎င်း၏ကိုယ်ပိုင်အမြိုးအနှယျရှိပါတယ်။
tan (arg)
radians အတွက်တိုင်းတာ, arg ၏တန်းဂျ Returns ။
tanh (arg)
arg ၏ခြဲ့ကားပွောတန်းဂျ Returns ။
ဤအ predefined function တွေကိုအပြင်, applications များ Tcl_CreateMathFunc () ကိုသုံးပြီးနောက်ထပ် function တွေကိုသတ်မှတ်လိမ့်မည်။
အမျိုးအစားများ, လျှံများနှင့် Precision
ကိန်းနဲ့ပတ်သက်တဲ့အားလုံးပြည်တွင်းရေးကွန်ပျူတာကို C အမျိုးအစားရှည်လျားပြုနေကြပြီး, floating-point ပါဝင်သောအားလုံးပြည်တွင်းရေး computing နှစ်ဆကို C အမျိုးအစားပြုနေကြသည်။ floating-point အဖြစ် string ကိုပြောင်းလဲတဲ့အခါ, ထပ်ကိန်းလျတ်တစ် TCL အမှားထဲမှာရှာဖွေတွေ့ရှိခြင်းနှင့်ရလဒ်များကိုဖြစ်ပါတယ်။ ဒါကြောင့်စိတ်မချရအဖြစ်မှတ်ယူသင့်ဒါ string ကိုကနေ integer ဖြစ်တဲ့အတွက်ဖို့ဘာသာပြောင်းအဘို့, လျတ်၏ထောက်လှမ်းဒေသခံကို C စာကြည့်တိုက်အတွက်အချို့လုပ်ရိုးလုပ်စဉ်၏အမူအကျင့်ပေါ်မှာမူတည်ပါတယ်။ မည်သည့်ကိစ္စတွင်ခုနှစ်, integer ဖြစ်တဲ့အတွက်လျတ်နှင့် underflow ယေဘုယျအားဖြင့်အလယ်အလတ်ရလဒ်များအတွက်ယုံကြည်စိတ်ချရသောတွေ့ရှိကြသည်မဟုတ်။ Floating-အမှတ်လျတ်နှင့် underflow ယေဘုယျအားဖြင့်တော်တော်လေးစိတ်ချသောဟာ့ဒ်ဝဲကပံ့ပိုးထားတဲ့ဘွဲ့မှရှာဖွေတွေ့ရှိနေကြသည်။
လိုအပ်အဖြစ်ကိန်းများအတွက်ပြည်တွင်းရေးကိုယ်စားပြု, floating-point များနှင့် string ကို operands ကြားတွင်ကူးပြောင်းခြင်းကိုအလိုအလျောက်ပြုမိသည်။ အချို့သော floating-point အရေအတွက်ကမိတ်ဆက်သည်တိုင်အောင်ဂဏန်းသင်္ချာကွန်ပျူတာ, ကိန်း floating-point ကိုအသုံးပြုသည်အရာသည်နောက်, အသုံးပြုကြသည်။ ဥပမာ,
expr 5/4ပြန် 1, နေစဉ်
expr 5 / 4.0 expr 5 / ([string ကိုအရှည် "abcd"] + 0.0)နှစ်ဦးစလုံး 1.25 ပြန်သွားပါ။ Floating-အမှတ်တန်ဖိုးများကိုအမြဲတစ်ဦး `` နဲ့အတူပြန်လာသောနေကြသည်။ '' 'သို့မဟုတ်တစ်ဦးက e သူတို့ကိန်းတန်ဖိုးတွေကိုတူမည်မဟုတ်ကြောင်းနိုင်အောင်။ ဥပမာ,
expr 20.0 / 5.0ပြန် 4.0, မ 4 ။
string စစ်ဆင်ရေး
ဟူသောအသုံးအနှုနျးဆန်းစစ်သုံးသပ်တဲ့အခါတတ်နိုင်သမျှ integer ဖြစ်တဲ့အတွက်သို့မဟုတ် floating-point အဖြစ်နှိုင်းယှဉ်လုပ်ဖို့ကြိုးစားပါတယ်ပေမယ့် string တန်ဖိုးများကို, နှိုင်းယှဉ်အော်ပရေတာများ၏ operands အဖြစ်အသုံးပြုနိုင်ပါသည်။ တစ်ဦးနှိုင်းယှဉ်၏ operands များထဲမှတစ်ဦး string ကိုတစ်ခုဖြစ်သည်နှင့်အခြားတစ်ဦးဂဏန်းတန်ဖိုးကိုရှိပြီး, ထိုဂဏန်း operand floating-point တန်ဖိုးများကို number နှင့်% ပါ g များအတွက်ကို C sprintf format နဲ့သတ်မှတ်ထားတဲ့% ဃသုံးပြီးပြန်တစ်ဦး string ကိုကူးပြောင်းသည်။ အကယ်. ဥပမာအားဖြင့်, ပညတ်တော်
expr { "0x03"> "2"} expr { "0y" < "0x12"}ပထမဦးဆုံးအနှိုင်းယှဉ် 1. နှစ်ဦးစလုံးပြန်လာကိန်းနှိုင်းယှဉ်သုံးပြီးပြု, ဒုတိယ operand string ကို 18 ကူးပြောင်းပြီးနောက်ဒုတိယ string ကိုနှိုင်းယှဉ်သုံးပြီးပြုမိသည်။ သောကြောင့်အခါတိုင်းတတ်နိုင်သမျှနံပါတ်များအဖြစ်တန်ဖိုးများကိုဆက်ဆံဖို့ TCL ရဲ့သဘောထားကို, အဲဒါကိုသင်အမှန်တကယ် string ကိုနှိုင်းယှဉ်ချင်နှင့် operands များ၏တန်ဖိုးများကိုမတရားဖြစ်နိုင်ပါတယ်သည့်အခါ == တူသောအော်ပရေတာသုံးစွဲဖို့ယေဘုယျအားဖြင့်အကောင်းတစ်စိတ်ကူးမျှမက, ဒါကြောင့်အစား string ကို command ကိုသုံးဤကိစ္စများတွင်ပိုမိုကောင်းမွန်ပါတယ်။
performance ကိုစဉ်းစား
အကောင်းဆုံးကိုမြန်နှုန်းအဘို့ဆီကိုဦးအတွက်အသုံးအနှုနျးမြားနှငျ့အသေးငယ်ဆုံးသိုလှောင်မှုလိုအပ်ချက်များကိုခိုင်ခံ့။ ဒါက TCL bytecode compiler ကိုအကောင်းဆုံးကုဒ်ထုတ်လုပ်ဖို့ခွင့်ပြုပါတယ်။
အထက်တွင်ဖော်ပြခဲ့သည့်အတိုင်းအသုံးအနှုန်းတွေနှစ်ကြိမ်အစားထိုးနေကြပါတယ်: တစ်ချိန်က TCL parser ကိုအားဖြင့်၎င်း, တစ်ချိန်က expr command ကိုဖြင့်ပြုလုပ်နိုင်ပါတယ်။ ဥပမာအားဖြင့်, ပညတ်တော်
3 set ကိုခ {$ တစ်ဦး + 2} expr $ ခ * 4 သတ်မှတ်ထားအဆိုပါ TCL parser ကိုပု variable ကိုခများအတွက်ပထမဦးဆုံးအစားထိုး $ တစ်ဦး + 2 လိမ့်မည်, ထို့နောက် expr command ကိုဟူသောအသုံးအနှုနျး $ တစ်ဦး + 2 * 4 အကဲဖြတ်ကြလိမ့်မည်ဖြစ်သောကြောင့် 11 ပြန်လာ, 4 ဤသည်တစ်ဦးမျိုးစုံဖြစ်ပါတယ်မဟုတ်ပါဘူး။
အများစုမှာအသုံးအနှုန်းတွေအစားထိုးတဲ့ဒုတိယအကျော့မလိုအပ်ပါဘူး။ သူတို့ဆီကိုဦးအတွက်ပူးတွဲသို့မဟုတ်လျှင်ကြသည်မဟုတ်ဖြစ်စေ, သူတို့ရဲ့ variable ကိုနှင့် command ကိုအစားထိုးသူတို့ကိုယ်သူတို့အစားထိုးလိုအပ်မဂဏန်းသို့မဟုတ်ညှို့လိုက်လျော။ အနည်းငယ် unbraced အသုံးအနှုန်းတွေအစားထိုးနှစ်ခုကျည်လိုအပ်ပါတယ်ဘာဖြစ်လို့လဲဆိုတော့သို့သော်သည်, bytecode compiler ကအပိုဆောင်းညွှန်ကြားချက်ဤအခြေအနေကိုကိုင်တွယ်ရန်ထုတ်လွှတ်ရပေမည်။ စျေးအကြီးဆုံးကုဒ် command ကိုအစားထိုးဆံ့ကြောင်း unbraced အသုံးအနှုန်းတွေဘို့လိုအပ်ပါသည်။ ဤရွေ့ကားအသုံးအနှုန်းတွေအသစ်သောကုဒ်ဟူသောအသုံးအနှုနျးကွပ်မျက်ခံရခြင်းဖြစ်သည်တစ်ခုချင်းစီကိုအချိန်ထုတ်လုပ်အားဖြင့်အကောင်အထည်ဖော်ရမည်ဖြစ်သည်။
keywords
ဂဏန်းသင်္ချာ, boolean , နှိုင်းယှဉ်, စကားရပ်, fuzzy နှိုင်းယှဉ်
အရေးကြီး: command တစ်ခုကိုသင်၏အထူးသဖြင့်ကွန်ပျူတာပေါ်တွင်အသုံးပြုသည်ကိုမည်သို့ကြည့်ဖို့လူကို command ကို (% သည်လူ) ကိုသုံးပါ။