TCL语法_日语语法整理手写笔记

TCL语法_日语语法整理手写笔记一、什么是TCLTcl全称是ToolcommandLanguage。它是一个基于字符串的命令语言,基础结构和语法非常简单,易于学习和掌握。Tcl语言是一个解释性语言,所谓解释性是指不象其

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、什么是TCL

Tcl 全称是 Tool command Language。它是一个基于字符串的命令语言,基础结构和语法非常简单,易于学习和掌握。

Tcl 语言是一个解释性语言,所谓解释性是指不象其他高级语言需要通过编译和联结,它象其他 shell 语言一样,直接对每条语句顺次解释执行。

Tcl 数据类型简单。对 Tcl 来说,它要处理的数据只有一种——字符串。Tcl 将变量值以字符串的形式进行存储,不关心它的实际使用类型。

二、TCL的基本语法

1.输出:tcl使用”puts”关键字来作为输出语句

[语法] : puts ?-nonewline? ?channelId? string 

Tcl 的输出命令是“puts”,将字符串输出到标准输出 channelId。语法中两个问号之间的参数为可选参数。

puts hello 
结果=> hello 

puts –nonewline  "hello hello" 
结果=>hello hello

但如果输出一段有空格的文本,则要用双引号或者花括号括起来

-nonewline 选项告诉 puts 不输出回车换行。

注意:双引号和花括号的作用是将多个词组织成一个变元,但他们是有差别的!这种差别就是在处理“替换操作”时,前者允许替换发生,而后者则可能会阻止替换。关于两者用法与差别以后会陆续讲到。在这里两者作用相同。

2.赋值: tcl 使用“set”关键字来定义参数,不必指定变量值的类型,因为变量值的类型仅一种——字符串。为变量赋值时,会为变量开辟一段内存空间来存储变量值。

[语法] set varName [value]  

set a Hello        ;#定义变量 a 并赋值 
=>Hello 
puts $a          ;#输出变量值 
=>Hello 
set a  “Hello world”  ;#重新赋值 
=>Hello world
set a   “Hello world”            
=> Test Tcl     ;#输出变量值,此时不加”$” 

puts $a         
=>Hello world     ;#输出变量值,此时要加”$” 

puts a              
=> a     ;#输出字符”a” 

set b $a           
=>Hello world 

puts $b 
=>Hello world         ;#将 a 的值赋给 b 

3.替换

(1):$

“$”符实现引用替换,用以引用参数值。上面也用到过

Tcl 对替换只进行一遍解释,对嵌套的”$”不于理睬。

set foo  oo 
=>oo 
set dollar foo 
=>foo 
set x $$dollar 
=>$foo           ;#只解释一次,将“$dollar”用 dollar 的值(foo)代替, ;#命令等效为 set x {$foo},大括阻止替换。 
set x {$foo}   
=>$foo            
set y $x 
=>$foo           ; #一轮替换 

(2) :[]

方括号“[]”完成命令替换。用“[]”将一条命令括起来,命令执行完成后,返回结果。

set b [set a   5]                  ;#set a 5 命令输出的结果赋给 b 
=>5 

puts $b 
=>5 

set c [expr 5 * 10]                 ;#将乘式结果赋给 c 
=>50 

(3): ” ” 和{} 

双引号和花括号将多个单词组织成一个参数,也是一种替换操作。””和{}内的替换如何进行

呢?一般的原则是在” “内的替换正常进行,而在{}内的替换有可能会被阻止。

set a 123
=>123 

puts "$a"         #会替换
=>123

puts {$a}          #不会替换
=>$a

 

三、总结

TCL语言的执行顺序是:先分组,再替换,最后执行

 

花括号中不准替换
双引号和花括号的作用都是分组,但是不同之处在于是否支持替换
语句的运行分3步走:
1、首先分组
2、其次替换
3、最后运行

$的作用是变量引导符,在字符串中如果要替换某个变量,可能还需要用{}来界定变量的起始和终点
分组有三种方法:空格,双引号和花括号
另外转义符\在这里的作用是提升或者消除字符的能力

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/167086.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Android 通过应用程序来设置系统的日期和时间中的

    Android 通过应用程序来设置系统的日期和时间中的

  • MapReduce编程模型详解

    MapReduce编程模型详解1.1MapReduce是什么  HadoopMapReduce是一个软件框架,基于该框架能够容易地编写应用程序,这些应用程序能够运行在由上千个商用机器组成的大集群上,并以一种可靠的,具有容错能力的方式并行地处理上TB级别的海量数据集。这个定义里面有着这些关键词,一是软件框架,二是并行处理,三是可靠且容错,四是大规模集群,五是海量数据集。1.2MapReduce做什么…

  • SSM整合 运行报Handler dispatch failed; nested exception is java.lang.AbstractMethodError: Method com/mcha「建议收藏」

    SSM整合 运行报Handler dispatch failed; nested exception is java.lang.AbstractMethodError: Method com/mcha「建议收藏」今天在整合SSM的时候,在运行过程中出现了如下错误:org.springframework.web.util.NestedServletException:Handlerdispatchfailed;nestedexceptionisjava.lang.AbstractMethodError:Methodcom/mchange/v2/c3p0/impl/NewProxyResultSet.isClosed()Zisabstract org.springframewor.

  • IntelliJ IDEA中怎么全局搜索替换(整个项目)(Eclipse)

    IntelliJ IDEA中怎么全局搜索替换(整个项目)(Eclipse)IntelliJIDEA使用教程(总目录篇)我们用Eclipse或者IntelliJIDEA编程,有时候需要将整个项目的某个字符串替换成其他的。全局搜索我会,我还给调成ctrl+g了呢,但是遇到要全局(整个项目)替换字符串。哎哟,我有点蒙了。这不换了编辑器吗。我用的是eclipse的keymap而且电脑又不是mac。那么问题来啦。怎么找快捷键呢。如下;额,顺便说下…

  • P2P建立加密通道

    P2P建立加密通道核心:DH秘钥交互算法DH算法:对于非对称加密算法部分支持DH算法(spec256K1、curv25519、ed25519不支持但可以转换到curv25519间接实现),PrivA+PubB=PrivB+PubA,算法在公开双方公钥时就可使用各自保存的私钥,进行秘钥的交换;加密随机种子:随机生成nonce值,使用该nonce值以及交换过的秘钥对数据进行加密,nonce值附加到密文头部…

  • HDU P3341 Lost’s revenge 题解+数据生成器

    HDU P3341 Lost’s revenge 题解+数据生成器LostandAekdyCoinarefriends.Theyalwaysplay”numbergame”(Aboringgamebasedonnumbertheory)together.WeallknowthatAekdyCoinisthemancalled”nuclearweaponofFZU,descendantofJi…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号