QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
本帖最后由 张文汽车 于 2016-7-30 18:19 编辑
; \9 F- V4 t9 S% v+ R, e9 _9 l# q  TCL脚本语言是一种基于字符串命令的语言,
( N( x# I: ^+ ~  Y6 Q3 }6 `  数据类型会根据其使用场合进行自动的转换,: g# ?) U" [: {# S- ~
  这也是TCL语言最大的一个特点之一。
  T; Y% P6 K$ {/ O* C, U1 g, @  那么这种自动转换一不注意可能不会得到我们想要的结果,
/ s5 X- [. V, L  下面看一个实例:  
  1. #首先我们定义两个变量,都是整数的( `5 e) E/ [+ q5 q
  2. set a 103 r6 s- s- \$ T2 c
  3. set b 3
    ' |: ~7 R+ q8 Z6 W9 T+ Z# r% q, Y3 I
  4. #然后我们再定义一个变量,来接收这两个整数相除得到的结果' {! G5 |# T8 S& Z, W. C
  5. set c [expr $a/$b]! v) Q* _- f1 l
  6. #接下来我们输出c的值( U9 l2 x/ Y& P3 j, \" i
  7. puts $c
    # @! w% a) m- k
复制代码
  那么现在问题来了,按我们正常的思路来理解的话,
: j- _0 g5 l8 _; e3 n; y9 c  C的值应该是3.3333....,
9 h7 C& t/ p8 L2 i2 g0 C. @  但是我们看到输出的结果却是3
7 P# ?( {$ _/ l% |% o; O& U
" a2 e, k7 D* S6 I5 b
  这是为什么呢?   ( ~1 `$ z6 ?" L! i( I" w" E' b) M
& b/ q$ j% R, A- i  ?; A- j9 A
  这是因为我们定义的a和b都是一个整数变量,
9 P; C' h% r! Y) _  那么对于两个整数变量的操作得到的结果也将是一整数,# Y' G+ m! G/ k; {8 V
  所以我们看得到的C的值是3也就不奇怪了。( x) D; L6 L4 y6 f9 p
  所以我们在定义变量的时候一定要明确变量的数据类型,+ O5 G2 f# C9 J5 a7 \6 Z+ q4 Y
  不然可能会得到意想不到的结果。# C- |$ D! p" n9 S6 {
  以下是修正后的程式
* ^# R( L8 f  Q) |& P! `; I3 L
  1. #首先我们定义两个变量,都是整数的
    ' O3 G3 l& n6 P, m4 J
  2. set a 10.
    ; r! @+ o* K+ d3 v4 O
  3. set b 3.3 I& T( V0 _6 P7 s: q( m+ c+ K
  4. #然后我们再定义一个变量,来接收这两个整数相除得到的结果
    4 e' `& w" N1 n. L0 V# G9 x5 u
  5. set c [expr $a/$b]
    6 X: w1 g+ o0 J8 ]# r& y) g7 F
  6. #接下来我们输出c的值
    ) c& A8 B2 ^  \  x  a
  7. puts $
    9 \6 b2 ~) l% d6 {; W2 G4 B! r& t
复制代码
  快去看看你没有这样的问题吧!!!

* j) w; a6 }) R) A4 d0 R3 I
! D; n# `  p4 X& b
 楼主| 发表于 2016-7-30 18:22:45 | 显示全部楼层 来自: 中国上海
在使用过程中大伙肯定也会遇到不小这样的问题,希望大伙能踊跃发言或发帖!!
1 d4 K- ?% n$ P0 h  ^' J! W7 F+ A+ }) @* I6 n' Y5 m( V
就让我一起共同学习进步吧!!
' s3 ]6 S3 z, h9 b% P1 S! i
发表于 2016-7-30 19:42:24 | 显示全部楼层 来自: 中国台湾
真是要注意一下資料類型
发表于 2016-8-9 08:52:16 | 显示全部楼层 来自: 中国江苏盐城
, O6 _3 @) \- X* e. v$ U+ y" M" l
真是要注意一下資料類型
发表于 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 )

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