QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 2568|回复: 5
收起左侧

[原创] TCL脚本语言常见错误用法一例,快来看看你用错了没有吧!

[复制链接]
发表于 2016-7-30 18:06:14 | 显示全部楼层 |阅读模式 来自: 中国上海

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 张文汽车 于 2016-7-30 18:19 编辑
( ]8 w3 A, n6 ^# k: ^% B  TCL脚本语言是一种基于字符串命令的语言,
2 ^; ]# K& a' C9 _  数据类型会根据其使用场合进行自动的转换,* I  R4 ~7 o5 S+ J% e
  这也是TCL语言最大的一个特点之一。
$ X/ H" e( H5 E$ @$ J  那么这种自动转换一不注意可能不会得到我们想要的结果,. [7 n# F+ X* j8 @* |+ [
  下面看一个实例:  
  1. #首先我们定义两个变量,都是整数的' s4 h& Z& O1 |- q1 w
  2. set a 10% v' `/ U# k+ \: _  L9 z
  3. set b 3
      Q$ k0 |, Z2 J  _
  4. #然后我们再定义一个变量,来接收这两个整数相除得到的结果- ]1 L/ J' w) a" b) \. _& K8 v
  5. set c [expr $a/$b]$ Y  h* k9 B# y6 V
  6. #接下来我们输出c的值
    4 S$ b: ^7 f1 ]2 }# p
  7. puts $c5 q, N$ h) t& `7 y/ k5 x
复制代码
  那么现在问题来了,按我们正常的思路来理解的话,
- g$ ?, D, ^6 D1 v; C2 Y: U$ j  C的值应该是3.3333....,/ [' Y6 {  I0 A4 c: L: K
  但是我们看到输出的结果却是31 E- V$ Y, b7 V) |3 z

0 [6 b* z! @' o  这是为什么呢?   " f% v0 \2 c& K

3 q: X7 e7 f* Y" W/ c  这是因为我们定义的a和b都是一个整数变量,
1 O. y  v) m# {/ [. W5 B9 [  那么对于两个整数变量的操作得到的结果也将是一整数,
. R6 V$ q! u# {$ z: I  所以我们看得到的C的值是3也就不奇怪了。" Q! r6 r4 @% a
  所以我们在定义变量的时候一定要明确变量的数据类型,
+ E' b/ D; g- I3 F  不然可能会得到意想不到的结果。5 r3 l' ^( B, N& a' |# l( B
  以下是修正后的程式0 |0 c5 z1 o: {$ f/ j2 j, O" q
  1. #首先我们定义两个变量,都是整数的# A7 I3 ]; K) J# X' C! \& n4 Z
  2. set a 10.6 U2 L6 T* R4 h4 h
  3. set b 3.
    ( \/ z$ W* g3 g0 J# b4 @
  4. #然后我们再定义一个变量,来接收这两个整数相除得到的结果. f$ p- |1 u  L& X8 _
  5. set c [expr $a/$b]
    * f9 S2 I% \4 k4 J
  6. #接下来我们输出c的值& u/ ~7 p% [+ s; U
  7. puts $/ _4 W0 t; v0 t+ T/ E' h
复制代码
  快去看看你没有这样的问题吧!!!

$ w4 S2 ]# D/ V  o6 w% x+ d( ~9 u' ^0 ^1 {, P
 楼主| 发表于 2016-7-30 18:22:45 | 显示全部楼层 来自: 中国上海
在使用过程中大伙肯定也会遇到不小这样的问题,希望大伙能踊跃发言或发帖!!
% F/ x# h  Q' c, N6 B
- j2 X  \# \' e6 T5 Y) w  M. |就让我一起共同学习进步吧!!
$ Z  p$ h5 Z5 V" J  b
发表于 2016-7-30 19:42:24 | 显示全部楼层 来自: 中国台湾
真是要注意一下資料類型
发表于 2016-8-9 08:52:16 | 显示全部楼层 来自: 中国江苏盐城

3 h0 A9 W& l1 o' d8 ^9 _真是要注意一下資料類型
发表于 2016-9-17 21:31:38 | 显示全部楼层 来自: 中国江苏无锡
受教了,多谢楼主
发表于 2017-4-30 09:02:43 | 显示全部楼层 来自: 中国江苏
对于初学TCL的我们来说,还是有相当大的教学意义的。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

快速回复 返回顶部 返回列表