Perl的
print 2 % -18;
Run Code Online (Sandbox Code Playgroud)
- >
-16
Run Code Online (Sandbox Code Playgroud)
TCL
puts [expr {2 % -18}]
Run Code Online (Sandbox Code Playgroud)
- >
-16
Run Code Online (Sandbox Code Playgroud)
但是VBScript
wscript.echo 2 mod -18
Run Code Online (Sandbox Code Playgroud)
- >
2
Run Code Online (Sandbox Code Playgroud)
为什么不同?
在遇到C#,ASP.NET,MS Access,Linux和Mono的主要兼容性问题之后,我决定用跨平台,开源的语言编程,并与兼容许多的嵌入式数据库兼容平台.我把选择范围缩小到了TCL.
在我开始使用TCL进行示例应用程序之前,我想看看创建独立应用程序是多么容易.我购买了一本名为"TCL和TK中的实用编程"的书,下载了TCLkit和FreeWrap,但我找到了将TK(Wish)中的TCL转换为独立应用程序的方法.
是否有人能够提供简单的步骤来将TCL TK脚本(例如带有文本的标签)转换为应用程序,或者具有非常直接解释的Web资源?
在Python tkinter模块,<Button-1>,<Button-2>和<Button-3>分别用于确定左,中,右按钮鼠标按钮点击.
同样,<KeyPress-Return>用于返回键按下.
我在哪里可以找到所有此类事件的列表,包括各种键盘键的名称?
Tcl绑定手册没有那些.
我正在学习编写TCL(期望)脚本,我注意到一些示例显示使用spawn,而其他示例显示命令exec.我试过谷歌搜索,但找不到有什么区别?
假设我在一个长期预期脚本的中间调用'exec',我可以期待发生什么?
我可以很容易地连接两个变量foo和bar,如下所示:"$ {foo} $ {bar}".
但是,如果我不想将中间结果放入变量中,如何轻松连接调用某些proc的结果?
这将写得很长:
set foo [myFoo $arg]
set bar [myBar $arg]
set result "${foo}${bar}"
Run Code Online (Sandbox Code Playgroud)
有没有办法在不引入临时变量foo和bar的情况下创建结果?
这样做对我的目的不正确:
concat [myFoo $arg] [myBar $arg]
Run Code Online (Sandbox Code Playgroud)
因为它在两个结果之间引入了一个空格(用于列表目的),如果不存在的话.
看起来像'string concat'就是我想要的,但它似乎不在我的Tcl解释器版本中.
string concat [myFoo $arg] [myBar $arg]
Run Code Online (Sandbox Code Playgroud)
字符串连接在这里写:
如何删除TCL列表中的元素说:
我已经谷歌搜索,还没有找到任何内置功能.
我已经使用了Expect几年了,但是我还不清楚它是否send_user与它相同puts.每当我想向用户发送信息性消息时,我想知道应该使用哪一个.从Expect的手册页看,它似乎send_user是相同的,puts但后来send_user用于什么?
+--------+-----------------------------------+
|   OS   |           Ubuntu 12.04            |
+--------+-----------------------------------+
| Python | 2.7, 3.2 and source installed 3.6 |
+--------+-----------------------------------+
Run Code Online (Sandbox Code Playgroud)
由于Python 3有两个版本,因此从存储库安装的任何内容都不适用于Python 3.6.存储库中最新版本的Python是3.2,因此我需要源安装或通过pip3.6.
启动后python3.6我尝试了import tkinter,这给出了以下错误.即使help('modules')返回了包含tkinter的模块列表.
 import tkinter
 ModuleNotFoundError: No module named '_tkinter'
Run Code Online (Sandbox Code Playgroud)
我尝试过同样的做法python3.2并且没有错误.  tkinter._tkinter给出了python3.2的tkinter库的位置
我进入了python3.6包含所有库文件的目录,实际上它丢失了tkinter.so目标文件.
我该如何修复错误?
我想让tkinter/tkagg工作,因为它似乎已经安装了所有模块/包.
谷歌搜索后,我发现我需要python3.6再次构建,但这次运行配置时使用Tcl/Tk选项.我宁愿不.python3.6从头开始安装需要1小时左右.
还有其他方法可以告诉我python3.6Tcl/Tk的位置吗?
问题不是告诉python tcl/tk在哪里.搞乱python3.6的源代码,然后将python3.6与python3.2进行比较后,我发现tkinter调用_tkinter而不是python文件,它是python在安装过程中构建的.so(共享对象)文件通过使用gcc的setup.py,它可能会涉及到distutils.
新的更合适的问题是如何_tkinter.cpython-36m-i386-linux-gnu.so从tcl/tk 构建
 ?
注意:我确实安装了tcl/tk,我已经使用tclsh和wish确认了.
我正在学习Tcl/Tk,并对tcl中花括号的使用感到困惑.
对我来说它似乎用于指示范围和声明字符串!这是一个错误(或功能)?
我的解释是否正确?