ຄໍາສັ່ງ Linux / Unix: expr

ຊື່

expr - ປະເມີນຜົນການສະແດງອອກ

Synopsis

expr arg ? arg arg ?

Concatenates arg 's (ເພີ່ມຊ່ອງຫວ່າງແຍກລະຫວ່າງພວກເຂົາ), ປະເມີນຜົນເປັນຜົນສະທ້ອນ Tcl, ແລະສົ່ງຄືນມູນຄ່າ. ຜູ້ປະຕິບັດການອະນຸຍາດໃນການສະແດງອອກ Tcl ເປັນກຸ່ມຂອງຜູ້ປະຕິບັດງານທີ່ອະນຸຍາດໃຫ້ໃຊ້ໃນການສະແດງ C ແລະພວກເຂົາມີຄວາມຫມາຍແລະຄວາມສໍາຄັນດຽວກັນກັບຜູ້ປະຕິບັດ C ທີ່ສອດຄ້ອງກັນ. ການສະແດງອອກເກືອບສະເຫມີ ຜົນຜະລິດຈໍານວນຕົວເລກ (ຄ່າ integer ຫຼື floating ຈຸດ). ຕົວຢ່າງ, ການສະແດງອອກ

expr 82 + 6

ປະເມີນເຖິງ 142. ການສະແດງອອກ Tcl ແຕກຕ່າງຈາກການສະແດງ C ໃນທາງທີ່ນັກສະແດງໄດ້ຖືກກໍານົດ. ນອກຈາກນີ້, ການສະແດງອອກຂອງ Tcl ສະຫນັບສະຫນູນຕົວແປທີ່ບໍ່ມີຕົວເລກແລະການປຽບທຽບສາຍ.

Operands

ການສະແດງອອກຂອງ Tcl ປະກອບດ້ວຍການປະສົມປະສານຂອງ operands, operators ແລະ parentheses. ຊ່ອງສີຂາວອາດຈະຖືກນໍາໃຊ້ລະຫວ່າງຕົວປະຕິບັດແລະຜູ້ປະຕິບັດງານແລະວົງເລັບ; ມັນຖືກປະຕິເສດໂດຍຄໍາແນະນໍາຂອງຄໍາສະແດງອອກ. ບ່ອນທີ່ເປັນໄປໄດ້, ປະຕິບັດໄດ້ຖືກຕີຄວາມວ່າເປັນຄ່າຕົວເລກ. ຄ່າຕົວເລກອາດຈະຖືກລະບຸໄວ້ໃນຕົວເລກຖານສິບຕື້ (ໃນກໍລະນີປົກກະຕິ), ໃນ octal (ຖ້າຕົວອັກສອນທໍາອິດຂອງ operand ແມ່ນ 0 ), ຫຼື hexadecimal (ຖ້າສອງຕົວທໍາອິດຂອງ operand ແມ່ນ 0x ). ຖ້ານັກປະຕິກອນບໍ່ມີຮູບແບບຈໍານວນຫນຶ່ງທີ່ໄດ້ກ່າວໄວ້ຂ້າງເທິງແລ້ວ, ມັນຖືກຖືວ່າເປັນຈໍານວນຈຸດທີ່ຫຼາກຫຼາຍຖ້າວ່າມັນເປັນໄປໄດ້. ຕົວເລກ floating-point ອາດຈະຖືກກໍານົດໄວ້ໃນວິທີໃດໆທີ່ໄດ້ຮັບການຍອມຮັບໂດຍ compiler C compliant C (ຍົກເວັ້ນວ່າ suffixes f , F , l ແລະ L ຈະບໍ່ຖືກອະນຸຍາດໃນການຕິດຕັ້ງສ່ວນໃຫຍ່). ຕົວຢ່າງ, ທັງຫມົດຂອງສິ່ງຕໍ່ໄປນີ້ແມ່ນຈໍານວນທີ່ມີຈຸດຫມາຍເລກທີ່ຖືກຕ້ອງ: 2.1, 3. , 6e4, 7.91e + 16. ຖ້າບໍ່ມີການຕີລາຄາຈໍານວນຫນຶ່ງ, ຫຼັງຈາກນັ້ນ, ປະຕິກິລິຍາຖືກປະໄວ້ເປັນສາຍ (ແລະມີພຽງແຕ່ຈໍານວນຜູ້ປະຕິບັດງານຈໍາກັດອາດຈະຖືກນໍາໃຊ້ກັບມັນ).

Operands ສາມາດລະບຸໄວ້ໃນວິທີໃດຫນຶ່ງຕໍ່ໄປນີ້:

[1]

ໃນຖານະເປັນມູນຄ່າຈໍານວນຫນຶ່ງ, ເປັນຈໍານວນເຕັມຫຼື floating ຈຸດ.

[2]

ໃນຖານະເປັນຕົວແປ Tcl, ການນໍາໃຊ້ລະບົບມາດຕະຖານ $ . ຄ່າຂອງຕົວແປຈະຖືກນໍາໃຊ້ເປັນຕົວປະຕິບັດ.

[3]

ໃນຖານະເປັນຊ່ອຍແນ່ຕິດຂັດໃນສອງຄໍາເວົ້າ. parser ການສະແດງອອກຈະປະຕິບັດແທນການປ່ຽນແທນ, ຕົວແປແລະຄໍາສັ່ງກ່ຽວກັບຂໍ້ມູນລະຫວ່າງວົງຢືມ, ແລະນໍາໃຊ້ມູນຄ່າຜົນໄດ້ຮັບເປັນຕົວປະຕິບັດ

[4]

ໃນຖານະເປັນເຊືອກທີ່ຕິດຢູ່ໃນຜ້າກັນເປື້ອນ. ຕົວອັກສອນລະຫວ່າງແຖບເປີດແລະການຈັບຄູ່ທີ່ໃກ້ຈະຖືກນໍາໃຊ້ເປັນຕົວປະຕິບັດໂດຍບໍ່ມີການທົດແທນໃດໆ.

[5]

ເປັນຄໍາສັ່ງ Tcl ທີ່ຕິດຢູ່ໃນວົງເລັບ. ຄໍາສັ່ງຈະຖືກປະຕິບັດແລະຜົນຂອງມັນຈະຖືກນໍາໃຊ້ເປັນນັກປະຕິບັດງານ.

[6]

ໃນຖານະເປັນຄະນິດສາດທີ່ມີການໂຕ້ຖຽງມີຮູບແບບຂ້າງເທິງໃດໆສໍາລັບນັກປະຕິບັດເຊັ່ນ sin ($ x) . ເບິ່ງຕໍ່ໄປນີ້ສໍາລັບບັນຊີລາຍຊື່ຂອງຫນ້າທີ່ກໍານົດໄວ້.

ບ່ອນທີ່ມີການປ່ຽນແທນທີ່ເກີດຂື້ນຂ້າງເທິງ (ຕົວຢ່າງເຊັ່ນພາຍໃນຊ່ອຍແນ່), ພວກມັນຖືກປະຕິບັດຕາມຄໍາແນະນໍາຂອງຄໍາສະແດງອອກ. ຢ່າງໃດກໍ່ຕາມ, ການປ່ຽນແທນຊັ້ນເພີ່ມເຕີມອາດໄດ້ຖືກປະຕິບັດໂດຍຕົວຊີ້ບອກຄໍາສັ່ງກ່ອນທີ່ຈະເອີ້ນວ່າໂປຣແກຣມປະມວນຜົນ. ດັ່ງທີ່ໄດ້ສົນທະນາຂ້າງລຸ່ມນີ້, ມັນມັກຈະເປັນປະໂຫຍດທີ່ສຸດເພື່ອສະແດງການສະແດງອອກໃນແຖບເພື່ອປ້ອງກັນບໍ່ໃຫ້ຕົວແປຄໍາສັ່ງຈາກການສະແດງຜົນແທນໃນເນື້ອຫາ.

ຕົວຢ່າງຂອງຄໍາສະແດງງ່າຍໆສົມມຸດວ່າຕົວແປ ທີ່ ມີຄ່າ 3 ແລະຕົວແປ b ມີມູນຄ່າ 6. ຫຼັງຈາກນັ້ນ, ຄໍາສັ່ງໃນເບື້ອງຊ້າຍຂອງແຕ່ລະເສັ້ນຂ້າງລຸ່ມນີ້ຈະສ້າງມູນຄ່າຢູ່ເບື້ອງຂວາຂອງເສັ້ນ:

expr 3 + $ a6.1 expr 2 + "$ a $ b" 56 expr 4 * [llength "6 2"] 8 expr {{one word}} <"word $ a"} 0

ຜູ້ປະຕິບັດງານ

ຜູ້ປະຕິບັດທີ່ຖືກຕ້ອງຖືກລະບຸໄວ້ຂ້າງລຸ່ມນີ້, ຈັດລໍາດັບຄວາມລ່ວງລະເມີດຫຼຸດລົງ:

- + ~!

Unary minus, unary ບວກ, bit ບໍ່ສະຫລາດ, ບໍ່ມີເຫດຜົນ. ບໍ່ມີການປະຕິບັດງານເຫຼົ່ານີ້ສາມາດຖືກນໍາໃຊ້ກັບນັກປະຕິກອນສະຕິງແລະບໍ່ສາມາດນໍາໃຊ້ໄດ້ບໍ່ເທົ່າທຽມກັນກັບຈໍານວນເຕັມ.

* /%

Multiply, divide, remainder ບໍ່ມີການປະຕິບັດງານເຫຼົ່ານີ້ສາມາດຖືກນໍາໃຊ້ກັບຕົວປະກອບສາຍອັກສອນ, ແລະສ່ວນທີ່ເຫຼືອອາດຈະຖືກນໍາໃຊ້ພຽງແຕ່ຈໍານວນເຕັມ. ສ່ວນທີ່ເຫຼືອຈະມີສັນຍານດຽວກັນກັບ divisor ແລະມູນຄ່າຢ່າງແທ້ຈິງທີ່ນ້ອຍກວ່າ divisor.

+ -

ເພີ່ມແລະຖອນຕົວ. ສາມາດໃຊ້ໄດ້ສໍາລັບຕົວເລກຈໍານວນໃດໆ.

<< >>

ການປ່ຽນແປງຊ້າຍແລະຂວາ. Valid for integer operands only ການປ່ຽນແປງທີ່ຖືກຕ້ອງສະເຫມີ propagates bit sign.

<> <=> =

Boolean ຫນ້ອຍ, ໃຫຍ່, ຫນ້ອຍກວ່າຫຼືເທົ່າທຽມກັນ, ແລະຫຼາຍກວ່າຫຼືເທົ່າທຽມກັນ. ແຕ່ລະຜູ້ປະກອບການຜະລິດ 1 ຖ້າເງື່ອນໄຂແມ່ນຄວາມຈິງ 0 ຖ້າບໍ່ດັ່ງນັ້ນ. ການປະຕິບັດເຫຼົ່ານີ້ສາມາດຖືກນໍາໃຊ້ກັບສາຍແລະຕົວປະຕິບັດຕົວເລກ, ໃນກໍລະນີທີ່ການປຽບທຽບກັບສາຍທີ່ຖືກນໍາໃຊ້.

==! =

Boolean ເທົ່າທຽມກັນແລະບໍ່ເທົ່າທຽມກັນ. ແຕ່ລະຜູ້ປະກອບການຜະລິດຜົນສູນ / ຫນຶ່ງ. ຖືກຕ້ອງສໍາລັບທຸກປະເພດຂອງປະຕິກິລິຍາ.

&

Bit-wise AND. Valid for integer operands only

"

Bit-wise exclusively OR. Valid for integer operands only

|

Bit-wise OR. Valid for integer operands only

&&

Logical AND ຜະລິດຜົນ 1 ຖ້າທັງສອງ operands ບໍ່ແມ່ນ 0, 0 ຖ້າບໍ່ດັ່ງນັ້ນ. ຖືກຕ້ອງສໍາລັບ boolean ແລະຈໍານວນ (integers ຫຼື floating ຈຸດ) operands ພຽງແຕ່.

||

Logical OR ຜະລິດຜົນ 0 ຖ້າທັງສອງປະຕິບັດແມ່ນສູນ, 1 ຖ້າບໍ່ດັ່ງນັ້ນ. ຖືກຕ້ອງສໍາລັບ boolean ແລະຈໍານວນ (integers ຫຼື floating ຈຸດ) operands ພຽງແຕ່.

x ? y : z

ຖ້າຫາກວ່າ, ຫຼັງຈາກນັ້ນ, ເຊັ່ນດຽວກັນກັບໃນ C. ຖ້າ x ປະເມີນວ່າບໍ່ແມ່ນສູນ, ຫຼັງຈາກນັ້ນຜົນໄດ້ຮັບແມ່ນມູນຄ່າຂອງ y . ຖ້າບໍ່ດັ່ງນັ້ນ, ຜົນໄດ້ຮັບແມ່ນມູນຄ່າຂອງ z . x operand ຕ້ອງມີຄ່າຕົວເລກ.

ເບິ່ງຄູ່ມື C ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບຜົນໄດ້ຮັບທີ່ຜະລິດໂດຍຜູ້ບໍລິຫານແຕ່ລະຄົນ. ທັງຫມົດຂອງກຸ່ມ ຜູ້ປະຕິບັດງານໄບ ນາທີຈາກຊ້າຍໄປຫາຂວາພາຍໃນລະດັບຄວາມສໍາຄັນດຽວກັນ. ຕົວຢ່າງ, ຄໍາສັ່ງ

expr 4 * 2 <7

ຄືນ 0

The && , || , ແລະ ?: ຜູ້ປະຕິບັດງານມີການປະເມີນຜົນ ", ຄືກັນກັບໃນ C, ຊຶ່ງຫມາຍຄວາມວ່ານັກວິຊາການບໍ່ໄດ້ຖືກປະເມີນຖ້າພວກເຂົາບໍ່ຈໍາເປັນຕ້ອງກໍານົດຜົນໄດ້ຮັບ. ຕົວຢ່າງ, ໃນຄໍາສັ່ງ

expr {$ v? [a]: [b]}

ພຽງແຕ່ຫນຶ່ງໃນ [a] ຫຼື [b] ຈະໄດ້ຮັບການປະເມີນຜົນ, ອີງຕາມມູນຄ່າຂອງ $ v . ຫມາຍເຫດ, ຢ່າງໃດກໍຕາມ, ວ່ານີ້ແມ່ນແທ້ຈິງຖ້າຫາກວ່າການສະແດງອອກທັງຫມົດແມ່ນຢູ່ໃນວົງເລັບ; ຖ້າບໍ່ດັ່ງນັ້ນ, parser Tcl ຈະປະເມີນຜົນທັງສອງ [a] ແລະ [b] ກ່ອນທີ່ຈະເອີ້ນຄໍາສັ່ງ expr .

Functions Math

Tcl ສະຫນັບສະຫນູນຫນ້າທີ່ຄະນິດສາດຕໍ່ໄປນີ້ໃນການສະແດງອອກ:

ບໍ່ມີ ເຫດຜົນກ່ຽວກັບ ບັນຫາທີ່ ເກີດຂື້ນໃນເວລາດຽວກັນກັບເຫດການດັ່ງກ່າວ.

abs ( arg )

Returns the absolute value of arg Arg ອາດຈະເປັນ integer ຫຼື floating ຈຸດ, ແລະຜົນໄດ້ຮັບແມ່ນຖືກສົ່ງຄືນໃນແບບດຽວກັນ.

acos ( arg )

ສົ່ງຄອດ cosine ຂອງ arg , ໃນລະດັບ [0, pi] radians. Arg ຄວນຢູ່ໃນລະດັບ [-1,1].

asin ( arg )

ກັບຄືນຫາ sine arc ຂອງ arg , ໃນຂອບເຂດ [-pi / 2, pi / 2] radians. Arg ຄວນຢູ່ໃນລະດັບ [-1,1].

atan ( arg )

ກັບຄືນຂອງ arc tangent ຂອງ arg , ໃນຂອບເຂດ [-pi / 2, pi / 2] radians.

atan2 ( x, y )

Returns the arc tangent of y / x , in the range [-pi, pi] radians x ແລະ y ບໍ່ສາມາດທັງ 0.

ceil ( arg )

ຄືນມູນຄ່າຕົວເລກທີ່ນ້ອຍທີ່ສຸດບໍ່ຫນ້ອຍກວ່າ arg .

cos ( arg )

ກັບຄືນ cosine ຂອງ arg , ການວັດແທກໃນ radians.

cosh ( arg )

ກັບຄືນ cosine hyperbolic ຂອງ arg . ຖ້າຜົນໄດ້ຮັບຈະເຮັດໃຫ້ເກີດການໄຫຼ, ຂໍ້ຜິດພາດຈະຖືກສົ່ງຄືນ.

double ( arg )

ຖ້າ arg ແມ່ນເປັນຄ່າ floating, returns arg , ຖ້າບໍ່ດັ່ງນັ້ນຈະປ່ຽນແປງ arg ເພື່ອ floating ແລະສົ່ງຄືນມູນຄ່າ converted.

exp ( arg )

ກັບຄືນຜົນຂອງ exponential ຂອງ arg , ຖືກກໍານົດວ່າ e ** arg . ຖ້າຜົນໄດ້ຮັບຈະເຮັດໃຫ້ເກີດການໄຫຼ, ຂໍ້ຜິດພາດຈະຖືກສົ່ງຄືນ.

ຊັ້ນ ( arg )

ຄືນມູນຄ່າ integral ທີ່ໃຫຍ່ທີ່ສຸດບໍ່ໃຫຍ່ກວ່າ arg .

fmod ( x, y )

ສົ່ງກັບສ່ວນທີ່ຍັງເຫຼືອຂອງ floating point ຂອງສ່ວນຂອງ x ໂດຍ y . ຖ້າ y ແມ່ນ 0, ຂໍ້ຜິດພາດຈະຖືກສົ່ງຄືນ.

hypot ( x, y )

ສົມທຽບໄລຍະເວລາຂອງ hypotenuse ຂອງສາມຫລ່ຽມຂວາ ( x * x + y * y ).

int ( arg )

ຖ້າ arg ແມ່ນມູນຄ່າ integer, returns arg , ຖ້າບໍ່ດັ່ງນັ້ນຈະປ່ຽນແປງກັບ integer ໂດຍ truncation ແລະສົ່ງກັບຄືນມູນຄ່າ converted.

log ( arg )

ສົ່ງກັບ logarithm ທໍາມະຊາດຂອງ arg . Arg ຕ້ອງເປັນຄ່າບວກ.

log10 ( arg )

ກັບຄືນມາ base 10 logarithm of arg . Arg ຕ້ອງເປັນຄ່າບວກ.

pow ( x, y )

computes ຄ່າຂອງ x ຍົກຂຶ້ນມາກັບພະລັງງານ y . ຖ້າ x ເປັນຕົວລົບ, y ຕ້ອງເປັນຄ່າຕົວເລກ.

rand ()

Returns a point floating point from zero to just less than one or, in terms mathematical, range [0,1] ເມັດພັນແມ່ນມາຈາກໂມງພາຍໃນຂອງເຄື່ອງຫຼືອາດຈະຖືກນໍາໃຊ້ດ້ວຍການເຮັດວຽກຂອງ srand.

ຮອບ ( arg )

ຖ້າ arg ແມ່ນເປັນຄ່າ integer, returns arg , ຖ້າບໍ່ດັ່ງນັ້ນຈະປ່ຽນແປງ arg ກັບ integer ໂດຍການເຮັດຮອບແລະສົ່ງຄືນມູນຄ່າທີ່ຖືກແປງ.

sin ( arg )

ກັບຄືນໄປຫາ sine ຂອງ arg , ການວັດແທກໃນ radians.

sinh ( arg )

ກັບຄືນຂອງ sine hyperbolic ຂອງ arg . ຖ້າຜົນໄດ້ຮັບຈະເຮັດໃຫ້ເກີດການໄຫຼ, ຂໍ້ຜິດພາດຈະຖືກສົ່ງຄືນ.

sqrt ( arg )

ຄືນຮາກຮາກຂອງ arg . Arg ຕ້ອງບໍ່ຖືກລົບກວນ.

srand ( arg )

arg , ເຊິ່ງຕ້ອງເປັນ integer, ຖືກນໍາໃຊ້ເພື່ອປັບແກ່ນສໍາລັບການຜະລິດຈໍານວນ Random. ກັບຄືນມາຈໍານວນ Random ທໍາອິດຈາກເມັດນັ້ນ. ແຕ່ລະນາຍແປພາສາມີແກ່ນຂອງຕົນເອງ.

tan ( arg )

ກັບຄືນຂອງ tangent ຂອງ arg , ການວັດແທກໃນ radians.

tanh ( arg )

ກັບຄືນຂອງ hyperbolic tangent ຂອງ arg .

ນອກເຫນືອໄປຈາກຫນ້າທີ່ກໍານົດໄວ້ກ່ອນຫນ້ານີ້, ຄໍາຮ້ອງສະຫມັກອາດກໍານົດຫນ້າທີ່ເພີ່ມເຕີມໂດຍໃຊ້ Tcl_CreateMathFunc ().

ປະເພດ, Overflow, ແລະຄວາມຖືກຕ້ອງ

ການຄໍານວນພາຍໃນທັງຫມົດທີ່ກ່ຽວຂ້ອງກັບຈໍານວນເຕັມແມ່ນເຮັດດ້ວຍ C ປະເພດ ຍາວ , ແລະການຄິດໄລ່ພາຍໃນທັງຫມົດທີ່ກ່ຽວຂ້ອງກັບຈຸດທີ່ເລື່ອນໄດ້ແມ່ນເຮັດດ້ວຍ C ປະເພດ ສອງ . ໃນເວລາທີ່ການປ່ຽນຊ່ອຍແນ່ກັບຈຸດທີ່ເລື່ອນໄດ້, ການລົງທຶນຂອງນັກລົງທຶນໄດ້ຖືກກວດພົບແລະຜົນໃນການຜິດພາດ Tcl. ສໍາລັບການປ່ຽນແປງເປັນຈໍານວນເຕັມຈາກຊ່ອຍແນ່, ການກວດສອບການໄຫຼເຂົ້າແມ່ນຂຶ້ນຢູ່ກັບພຶດຕິກໍາຂອງບາງປະຕິບັດໃນຫ້ອງສະຫມຸດ C ທ້ອງຖິ່ນ, ດັ່ງນັ້ນມັນຄວນຈະຖືວ່າເປັນບໍ່ຫນ້າເຊື່ອຖື. ໃນກໍລະນີໃດກໍ່ຕາມ, ການໄຫຼຂອງຈໍານວນເຕັມແລະການໄຫຼເຂົ້າຂອງໂດຍທົ່ວໄປໂດຍທົ່ວໄປບໍ່ໄດ້ຖືກກວດພົບວ່າມີຄວາມເຊື່ອຖືສໍາລັບຜົນໄດ້ຮັບລະດັບກາງ. Overflow, floating point point and underflow are detected to the degree supported by the hardware, which is generally reliable.

ການປ່ຽນແປງລະຫວ່າງຕົວແທນພາຍໃນສໍາລັບຕົວແປ integer, floating-point, ແລະ string ຈະເຮັດໂດຍອັດຕະໂນມັດຕາມຄວາມຕ້ອງການ. ສໍາລັບການຄໍານວນເລກຄະນິດສາດ, ຈໍານວນເຕັມຖືກນໍາໃຊ້ຈົນກ່ວາຈໍານວນທີ່ລະດັບຈຸດທີ່ຖືກນໍາສະເຫນີ, ຫຼັງຈາກທີ່ຈຸດລອຍໄດ້ຖືກນໍາໃຊ້. ຍົກ​ຕົວ​ຢ່າງ,

expr 5/4

ກັບຄືນ 1, ໃນຂະນະທີ່

expr 5 / 4.0 expr 5 / ([string length "abcd"] + 00)

ທັງສອງຄືນ 1.25. ຄ່າທີ່ floating-point ແມ່ນຖືກສົ່ງຄືນກັບ `` . '' ຫຼື e ເພື່ອວ່າພວກເຂົາຈະບໍ່ມີລັກສະນະຄືຄ່າຕົວຈິງ. ຍົກ​ຕົວ​ຢ່າງ,

expr 200/50

ຄືນ 40 , ບໍ່ແມ່ນ 4 .

String Operations

ຄ່າຕົວອັກສອນອາດຈະຖືກນໍາໃຊ້ເປັນ operands ຂອງຜູ້ປະກອບການປຽບທຽບ, ເຖິງແມ່ນວ່າການປະເມີນຜົນກະຕຸ້ນພະຍາຍາມເຮັດການປຽບທຽບເປັນເລກເຕັມຫຼືຈຸດທີ່ມັນສາມາດເຮັດໄດ້. ຖ້າຫນຶ່ງຂອງປະຕິກິລິຍາຂອງການປຽບທຽບແມ່ນສາຍແລະອື່ນໆທີ່ມີຄ່າຕົວເລກ, ຕົວເລກຕົວເລກຈະຖືກປ່ຽນເປັນຊ່ອຍແນ່ໂດຍໃຊ້ຕົວກໍານົດການ C sprintf format % d ສໍາລັບ integers ແລະ % g ສໍາລັບຄ່າ floating point. ຕົວຢ່າງ, ຄໍາສັ່ງ

expr {"0x03"> "2"} expr {"0y" <"0x12"}

ທັງສອງຄືນ 1 ການປຽບທຽບທໍາອິດແມ່ນເຮັດໂດຍໃຊ້ການປຽບທຽບຈໍານວນເຕັມແລະທີສອງແມ່ນເຮັດໂດຍການໃຊ້ການປຽບທຽບລະບົບຫຼັງຈາກ operand ທີສອງຖືກແປງເປັນສາຍ 18 . ເນື່ອງຈາກວ່າແນວໂນ້ມຂອງ Tcl ທີ່ຈະປະຕິບັດຕາມຄ່າທີ່ເປັນຈໍານວນເທົ່າໃດກໍ່ຕາມ, ມັນບໍ່ແມ່ນຄວາມຄິດທີ່ດີທີ່ຈະໃຊ້ຕົວປະຕິບັດງານເຊັ່ນ == ເມື່ອທ່ານຕ້ອງການການປຽບທຽບຊ່ອຍແນ່ແລະຄ່າຂອງຕົວປະຕິບັດທີ່ອາດຈະເປັນທາງເລືອກ; ມັນດີກວ່າໃນກໍລະນີນີ້ເພື່ອໃຊ້ຄໍາສັ່ງ ຊ່ອຍແນ່ ແທນ.

ການພິຈາລະນາການປະຕິບັດ

ສະແດງຄໍານິຍາມໃນຂວດເພື່ອຄວາມໄວທີ່ດີທີ່ສຸດແລະຄວາມຕ້ອງການການເກັບຮັກສາຂະຫນາດນ້ອຍທີ່ສຸດ. ນີ້ອະນຸຍາດໃຫ້ Tcl bytecode compiler ເພື່ອສ້າງລະຫັດທີ່ດີທີ່ສຸດ.

ດັ່ງທີ່ກ່າວມາຂ້າງເທິງ, ການສະແດງອອກຈະຖືກແທນທີ່ສອງຄັ້ງ: ຄັ້ງດຽວໂດຍຕົວກໍານົດການ Tcl ແລະຄັ້ງດຽວໂດຍຄໍາສັ່ງ expr . ຕົວຢ່າງ, ຄໍາສັ່ງ

ຕັ້ງຄ່າ 3 set b {$ a + 2} expr $ b * 4

return 11, not a multiple of 4 This is because the parser Tcl first substitutes $ a + 2 for the variable b , then expr command will evaluate the expression $ a + 2 * 4

ການສະແດງອອກຫຼາຍທີ່ສຸດບໍ່ຈໍາເປັນຕ້ອງມີການປ່ຽນແທນຄັ້ງທີສອງ. ເຖິງແມ່ນວ່າພວກເຂົາແມ່ນຢູ່ໃນຂີ້ມູກຫຼື, ຖ້າບໍ່ດັ່ງນັ້ນ, ຕົວປ່ຽນແປງຕົວແປແລະຄໍາສັ່ງຂອງພວກເຂົາຈະໃຫ້ຈໍານວນຫຼືສາຍທີ່ບໍ່ຕ້ອງການແທນ. ຢ່າງໃດກໍຕາມ, ເນື່ອງຈາກວ່າການສະແດງອອກແບບບໍ່ຖືກຕ້ອງຈໍານວນສອງຕ້ອງມີການປ່ຽນແທນສອງຮອບ, compiler bytecode ຕ້ອງອອກຄໍາແນະນໍາເພີ່ມເຕີມເພື່ອຈັດການກັບສະຖານະການນີ້. ລະຫັດທີ່ແພງຫຼາຍທີ່ສຸດແມ່ນຈໍາເປັນສໍາລັບການສະແດງອອກທີ່ບໍ່ມີຄວາມຫມາຍທີ່ມີການປ່ຽນແທນຄໍາສັ່ງ. ການສະແດງອອກເຫຼົ່ານີ້ຕ້ອງໄດ້ຮັບການປະຕິບັດໂດຍການສ້າງລະຫັດໃຫມ່ໃນແຕ່ລະຄັ້ງທີ່ການສະແດງຜົນຖືກປະຕິບັດ.

ຄໍາສໍາຄັນ

ຄະນິດສາດ, boolean , ປຽບທຽບ, ການສະແດງ, ການປຽບທຽບ fuzzy

ສິ່ງສໍາຄັນ: ໃຊ້ຄໍາສັ່ງ man ( % man ) ເພື່ອເບິ່ງວິທີການໃຊ້ຄໍາສັ່ງໃນຄອມພິວເຕີຂອງທ່ານ.