l 数值操作数

表达式的操作数一般是整数或实数。整数可能是十进制。二进制,八进制或十六进制。

比方以下同一个整数

335               --> 十进制

0o517           --> 八进制

0x14f            --> 十六进制

0b10100111 --> 二进制

处理0开头的十进制整数最安全的方法是使用scan命令.

以下就是非经常常使用的样例:

l 操作符及其优先级别

Tcl与C类似。同样的优先级符从左到右进行计算。比方:10-4-3与(10-4)-3结果是一样的,但假设4*2 < 7,计算结果为0,由于*的优先级别大于>,事实上那么多操作符,根本不可能记住,最保险。也是最可靠的就是用()来完毕自己的意图。

l 算术操作符

+, -, *, /, %, 及**

l 关系操作符

<; <=; >=; >; ==; !=

l 逻辑操作符

逻辑操作符 &&, || , 以及!

($x > 4) && ($x < 10)。当中每一个操作符结果都是0或1

A && B:   A与B同一时候为真,方为真

A || B    :   A与B仅仅要有一个为真。就为真

!A         :   A为假,则为真

Tcl中总是用1代表真,0代表假,在Tcl中:

false, no以及off表示假

true, yes以及on表示真

NOTE: 这些字符串不区分大写和小写.

l 按位操作符

Tcl中提供了6个操作符. &, |, ^, << , >>,以及~

& : 按位与

| : 按位或

^ : 异或

<<: 按位左移

>>: 按位右移

~ : 取反符号

l 三元操作符

expr {($a < $b) ? $a : $b}

$a < $b为条件

1)  假设条件为真: 则选择$a

2)  假设条件为假: 则选择$b

l 数学函数

Tcl表达式支持数学函数,如sin(),cos(),abs(),exp()等函数。到时候请查阅文档就可以.

l 替换

表达式操作数的替换有两种方式:

方式一: 普通的Tcl解析器机制

方式二: 通过表达式处理

1. 首先当表达式遇到$,它自己会进行一次变量替换,把变量x的值传给sin.

2. 其次将2*sin($x)作为參数传递给expr.

NOTE: 最好总是把表达式用{}括起来,即使是在使用expr命令的时候,原因一:Tcl处理括起来的表达式效率,大大高于没有括起来的表达式。

原因二:避免代码中出现一些难以捕捉的安全漏洞.比方说:

set x [expr $input - 2]

假设实用户输入[format c:\],Tcl解析器直接会将这个字符串作为input变量,从而格式化C盘。

l 字符串操作

Tcl表达式接收字符串。通常是以下两种方式

方式一: 用双引號

方式二: 用大括号

所以像以下的表示是错误的:

l 列表操作

Tcl 支持两个列表操作符,in 与 lsearch –exact

Tcl学习之--表达式相关推荐

  1. ae编程语言as_【微教程】从编程的思路学习AE表达式

    (这是一段引人入胜的开场白......),针对知道ae基础操作的群体的教学 授人以鱼不如授人以渔,学习表达式应该是从学会脚本语言入手,而不是通过记忆的方式记住每种效果的表达式语句.这里说的编程并非特指 ...

  2. EL表达式 | 深入学习EL表达式

    目录 一:深入学习EL表达式 1.什么是EL表达式 2.EL表达式的主要作用 3.EL表达式的使用 4.面试题 :${abc} 和 ${"abc"}的区别 5.EL表达式读取数据的 ...

  3. Tcl学习0——Tcl和Tk介绍

    Tcl Tcl(tool command language)是一种用于控制和扩展应用程序的动态语言. Tcl特点: 可嵌入的(embeded)(解释器是一个C函数库,很容易整合到应用程序中.) 可扩展 ...

  4. TCL学习--语法置换(第一篇)

    文章目录 一.TCL语法 1.脚本.命令和单词符号 2.置换 (a)变量置换 (b)命令置换 (c) 反斜杠置换 (d)双引号和花括号 3.注释 一.TCL语法 TCL是一种解释脚本执行的脚本语言,提 ...

  5. 2021年大数据常用语言Scala(七):基础语法学习 条件表达式

    条件表达式 条件表达式就是if表达式,if表达式可以根据给定的条件是否满足,根据条件的结果(真或假)决定执行对应的操作.scala条件表达式的语法和Java一样. 有返回值的if 与Java不一样的是 ...

  6. Tcl学习之--列表|字典

    [列表|字典] Tcl使用列表来处理各种集合,比方一个目录中的全部文件,以及一个组件的全部选项.最简单的列表就是包括由随意个空格.制表符.换行符.分隔的随意多个元素的字符串.比方: JerryAlic ...

  7. 表达式树 php,Linux_LINQ学习笔记:表达式树,构建查询表达式 本节中, 我们 - phpStudy...

    构建查询表达式 本节中, 我们假设我们拥有一个这样的实体类: 1: [Table] public partial class Product 2: 3: { 4: 5: [Column(IsPrima ...

  8. 系统学习Lambda表达式

    1. 语法 首先我们要知道如何写Lambda表达式,或者说怎么样才能写出有效的Lambda表达式,这就需要了解其语法. Lambda表达式由三部分组成: 参数列表 箭头 主体 有两种风格,分别是: 表 ...

  9. sple表达式_学习Spring表达式语言(SpEL)

    概观 Spring Expression Language(缩写为SpEL)是一种强大的表达式语言.在Spring产品组合中,它是表达式计算的基础.它支持在运行时查询和操作对象图,它可以与基于XML和 ...

最新文章

  1. Nat. Mach. Intel. | IBM RXN: 深度学习在化学反应分类上大放异彩
  2. Java Spring log源代码学习
  3. 手把手教你学Dapr - 6. 发布订阅
  4. docker mysql主从_使用docker 实现MySQL主从同步/读写分离
  5. dw服务器文件夹在哪里,Dreamweaver CC
  6. excel匹配_「最全」Excel中查找匹配函数
  7. 小狗拉菲扫地机器人_小狗电器:2018年最值得入手的五款扫地机器人
  8. 与其临渊羡鱼,不如退而结网
  9. MYSQL—— 基础入门,select 查询涉及到的关键字组合详解(进阶篇)
  10. 201671010127 2016—2017—2 Java学习周结
  11. 致敬Github那些卓越贡献的大佬和他们的公众号
  12. android 从服务器上获取APK下载安装
  13. 如何用微信自动添加wifi连接服务器地址,微信服务号如何实现扫码自动连接WIFI?详细步骤介绍!...
  14. 联想新计算机开机黑屏,联想笔记本电脑开不了机 联想笔记本电脑开机黑屏怎么办...
  15. Java实现给PDF文件加水印、图片、签名(含测试类)
  16. snapchat为什么_什么是Snapchat?
  17. Universal Robot——在Gazebo中模拟UR5机器人
  18. 大二上,计组原理笔记(2)2.2 机器数的定浮点表示
  19. python开源自动化测试平台_8款开源自动化测试框架
  20. 一天上手Aurora 8B/10B IP核(5)----从Framing接口的官方例程学起

热门文章

  1. [读书笔记] 敏捷软件开发:原则、模式与实践
  2. org.xml.sax.SAXParseException: The string -- is not permitted within comments.
  3. Error:-81024 LR_VUG:The 'QTWeb' type is not supported on win32 platforms
  4. python的编程模式有哪两种_python程序的两种运行方式是什么
  5. php date函数实现,PHP date() 函数可实现的功能列表
  6. 聚类中心坐标公式如何使用_如何使用CAD看图软件来测量坐标?
  7. 2025美妆行业科技应用前瞻报告
  8. 新经济、新选择——人才流动与迁徙2021
  9. 正月初二 | 2月13日 星期六 | 大年初一单日票房创新纪录;除夕当天外卖订单增七成;央视春晚直播受众达11.4亿人...
  10. 圆章能随便刻吗_自己晒干的蒲公英能长期当茶随便喝吗?医生:3个危害不请自来...