QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
本帖最后由 张文汽车 于 2016-7-30 18:19 编辑 0 `6 G$ a7 H+ ?. O) `
  TCL脚本语言是一种基于字符串命令的语言,6 O( m! R; l+ R$ n
  数据类型会根据其使用场合进行自动的转换,
8 H) _+ v: \; W. L6 R7 L! h' W  这也是TCL语言最大的一个特点之一。
* P# O& |0 R+ M8 |# C/ c) B% L  那么这种自动转换一不注意可能不会得到我们想要的结果,  W2 g* l  O( K8 q' f8 \
  下面看一个实例:  
  1. #首先我们定义两个变量,都是整数的
    ( ?8 k$ l: B7 i& k/ }
  2. set a 10+ M2 ^+ T( c6 b
  3. set b 3
    ( S1 _* N; y5 l0 c& l4 l/ A, w3 j
  4. #然后我们再定义一个变量,来接收这两个整数相除得到的结果
    ) r- W! b; A" g% ]
  5. set c [expr $a/$b]% a; k- `1 b5 b( y0 K/ J
  6. #接下来我们输出c的值( o& V2 P* }: D% n
  7. puts $c8 }  [4 i/ X' `" {- a
复制代码
  那么现在问题来了,按我们正常的思路来理解的话,$ J' o0 ^3 J8 L8 b7 e4 Q
  C的值应该是3.3333....,
0 x9 V5 y( W: s- x( x  但是我们看到输出的结果却是3% e; o# ~0 H* _: `6 s9 N' j
) M* v* @" ?  O6 a9 t
  这是为什么呢?   7 ^- R6 q! A* G$ J- _/ M0 i% c* K

+ v' o; ^9 r6 {- ]* @# U: K  这是因为我们定义的a和b都是一个整数变量,
/ I) _8 K# q6 w5 U7 i$ _. `  那么对于两个整数变量的操作得到的结果也将是一整数,0 H! W" H& d6 \( C" K' M+ c" r
  所以我们看得到的C的值是3也就不奇怪了。+ ]9 B# o  p9 N$ L4 j$ Y& q
  所以我们在定义变量的时候一定要明确变量的数据类型,
% D- f+ W2 S8 Y, v$ ~/ x. f  不然可能会得到意想不到的结果。( O" m& g% B: P
  以下是修正后的程式
: K4 S% X- \# ]: t- i
  1. #首先我们定义两个变量,都是整数的7 x" t$ g1 G+ _4 Y7 H+ K
  2. set a 10.
    9 t% c7 J# q2 l; h# l5 F9 n1 \
  3. set b 3.4 X( e) j' Y! f5 ~( J8 ^
  4. #然后我们再定义一个变量,来接收这两个整数相除得到的结果
    ; e5 t" m( G1 c  A
  5. set c [expr $a/$b]" r3 h$ U' f3 g0 k( \2 W
  6. #接下来我们输出c的值
    & N' T9 }/ e# w+ q5 B7 L, S
  7. puts $% `% I' d, m6 c2 }2 D4 k6 N0 |5 w
复制代码
  快去看看你没有这样的问题吧!!!
$ z; T& _& n$ E# Z& U
3 A; \! U7 _! `  A$ Q% W8 ^
 楼主| 发表于 2016-7-30 18:22:45 | 显示全部楼层 来自: 中国上海
在使用过程中大伙肯定也会遇到不小这样的问题,希望大伙能踊跃发言或发帖!!. }) h7 O5 [  C8 R7 T
- K. T/ H& S/ }& W# o2 t( R
就让我一起共同学习进步吧!!: p9 ~; Q# N& l4 v. X; I& p
发表于 2016-7-30 19:42:24 | 显示全部楼层 来自: 中国台湾
真是要注意一下資料類型
发表于 2016-8-9 08:52:16 | 显示全部楼层 来自: 中国江苏盐城

. c" d9 o0 i6 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 )

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