QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
本帖最后由 张文汽车 于 2016-7-30 18:19 编辑
3 c/ m7 ]/ N1 ~, z& {9 O9 m  TCL脚本语言是一种基于字符串命令的语言,/ @/ N' @/ e4 s8 H3 \: E
  数据类型会根据其使用场合进行自动的转换,% Z5 [- E; t% S. ]! N
  这也是TCL语言最大的一个特点之一。
* K0 @! u3 H) d+ _$ {  p  那么这种自动转换一不注意可能不会得到我们想要的结果,* w7 b1 _" `0 C( f
  下面看一个实例:  
  1. #首先我们定义两个变量,都是整数的1 \" A; F9 [8 G) h
  2. set a 10- h$ |5 k3 u. P: s' N3 V
  3. set b 3( U0 A/ ~: h! h  T, v
  4. #然后我们再定义一个变量,来接收这两个整数相除得到的结果* a) ~+ V  K: u
  5. set c [expr $a/$b]" V" k+ R- r* T' o
  6. #接下来我们输出c的值+ X1 [: ?- q3 H
  7. puts $c
    / `0 _/ h) T# u; q
复制代码
  那么现在问题来了,按我们正常的思路来理解的话,6 c  z) Q; \& [& R! d- g/ x
  C的值应该是3.3333....,
, ], [- O3 J! q6 s  o, @/ f  @6 b  但是我们看到输出的结果却是3( r. n, M) ^# r+ a

) c% S. |5 L# b" y, p% |  这是为什么呢?   - z$ S) A5 O. W: x; ]
: u- k% y5 [' @6 `2 u
  这是因为我们定义的a和b都是一个整数变量,
7 {. Q: Y2 z( C% d' o/ o  那么对于两个整数变量的操作得到的结果也将是一整数,
  {! X$ O1 X# n8 `2 a  所以我们看得到的C的值是3也就不奇怪了。1 ^2 v7 _- c" I! R$ G
  所以我们在定义变量的时候一定要明确变量的数据类型,% T  i; Y, @4 r& I: h1 J+ I' o+ M1 ^$ r3 g
  不然可能会得到意想不到的结果。, f' v, W* }: V+ {8 R, r4 E
  以下是修正后的程式
, ], d1 b# G" \" O+ @1 I+ ~1 S
  1. #首先我们定义两个变量,都是整数的* U& P0 r% A3 S' {" ^) s6 S
  2. set a 10.$ `/ W+ g3 F3 ?1 R
  3. set b 3.
    # e% X# A# E$ d
  4. #然后我们再定义一个变量,来接收这两个整数相除得到的结果
    ) [. w/ m/ w: l/ Y5 Y7 ]
  5. set c [expr $a/$b]
    3 O! ^5 T& U2 r- D1 _( }
  6. #接下来我们输出c的值) `) x! @# ^5 v+ Z6 H
  7. puts $# O! L# L; `, n2 z7 V; @; R2 a- y
复制代码
  快去看看你没有这样的问题吧!!!

, @3 x  y& N/ h9 `) }5 ]# h2 u" D: E
 楼主| 发表于 2016-7-30 18:22:45 | 显示全部楼层 来自: 中国上海
在使用过程中大伙肯定也会遇到不小这样的问题,希望大伙能踊跃发言或发帖!!' X5 z2 J; z# I/ t4 a
5 v% t" o) j  @+ G( [
就让我一起共同学习进步吧!!
0 Z) C' n  X3 i) P6 V2 U$ k
发表于 2016-7-30 19:42:24 | 显示全部楼层 来自: 中国台湾
真是要注意一下資料類型
发表于 2016-8-9 08:52:16 | 显示全部楼层 来自: 中国江苏盐城
0 |* _  _/ R  F% A# |. f) R
真是要注意一下資料類型
发表于 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 )

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