QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
本帖最后由 张文汽车 于 2016-7-30 18:19 编辑 : T+ L3 \+ L$ ^' S9 k
  TCL脚本语言是一种基于字符串命令的语言,
2 O- x$ R; Q6 s9 Z  数据类型会根据其使用场合进行自动的转换,
4 c$ z- ?5 u" R9 E  这也是TCL语言最大的一个特点之一。0 k8 C( g2 }  d9 D: P
  那么这种自动转换一不注意可能不会得到我们想要的结果,
, L. m8 w% O# v0 s4 K9 ]  下面看一个实例:  
  1. #首先我们定义两个变量,都是整数的) K2 n, x# ^6 S2 \
  2. set a 100 J$ g$ g5 z- }3 |- g
  3. set b 3; `( a5 u0 c- b. j' `7 s& m
  4. #然后我们再定义一个变量,来接收这两个整数相除得到的结果6 @8 a4 P) \3 D, t! h% u5 m
  5. set c [expr $a/$b]3 G; b( i- W' ?/ O  ^' P& A% `
  6. #接下来我们输出c的值
    - h0 b! ^, v+ a, |; M  ^
  7. puts $c
    3 k! {+ n! ~# v5 @- Z1 V
复制代码
  那么现在问题来了,按我们正常的思路来理解的话,
4 ?! O# H( t. W: g6 X- g, D, @7 J$ }1 p  C的值应该是3.3333....,
% \5 W. K$ P) f8 {7 i  但是我们看到输出的结果却是3
) ?) K* @  j* r+ W) h1 Z$ k9 w

4 E* ]0 f* C4 r6 m; _2 {# W  这是为什么呢?   $ h9 j1 D. n% [- Y

5 }* A/ X6 {6 h1 M  这是因为我们定义的a和b都是一个整数变量,
" A4 H- W1 |" E" r- L" q- q5 C4 Z/ }1 x  那么对于两个整数变量的操作得到的结果也将是一整数,' ]) D1 \2 `7 c0 L% V
  所以我们看得到的C的值是3也就不奇怪了。
! m/ ^% m  t2 f* l) a- g- M  所以我们在定义变量的时候一定要明确变量的数据类型,
3 p9 W5 U/ Q2 B# h  不然可能会得到意想不到的结果。
4 D) B/ V& t9 M8 K, }: V9 r  以下是修正后的程式
- o; P- {2 `! c# I
  1. #首先我们定义两个变量,都是整数的
    $ I6 k3 f5 d/ r6 `# o
  2. set a 10.) h) Q/ m  k7 o  I- C
  3. set b 3.
    1 N9 g& f8 Z$ ~4 g" G8 ^
  4. #然后我们再定义一个变量,来接收这两个整数相除得到的结果# Z- Z5 q! m! z: }6 Z+ p$ A
  5. set c [expr $a/$b]
    9 g! a# ?# {1 y/ A0 D
  6. #接下来我们输出c的值
    9 s1 d$ S6 v! K2 ?: G" P
  7. puts $/ K1 J! @2 c6 F* Q
复制代码
  快去看看你没有这样的问题吧!!!
4 `2 S  ?; w  ~' L

' l2 Q$ w% O5 M0 A3 r
 楼主| 发表于 2016-7-30 18:22:45 | 显示全部楼层 来自: 中国上海
在使用过程中大伙肯定也会遇到不小这样的问题,希望大伙能踊跃发言或发帖!!1 a% |4 |" B# o, \& d$ L3 l: Y+ D
' o$ Q. q* i- _7 t9 Q- u
就让我一起共同学习进步吧!!! l' m4 H* A6 f, J
发表于 2016-7-30 19:42:24 | 显示全部楼层 来自: 中国台湾
真是要注意一下資料類型
发表于 2016-8-9 08:52:16 | 显示全部楼层 来自: 中国江苏盐城
0 c( i7 F7 g6 a  _
真是要注意一下資料類型
发表于 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 )

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