开发者社区 问答 正文

语言相关-论数据类型


      
       码栈中只存在一种数据类型,那就是 Variant.  Variant可用来存储纯数字的或字符串类型的数据, 而程序具体如何看待这些数据则要看用户的使用方式;举例来说,若您试图让两个变量相乘, 那么它们将被当作数字类型(指具有数学意义的可供计算的值)使用, 而若您试图连接(拼合)两个变量则它们将被认做字符串(String类型).
下面来看一些例子:
    10 * 20 等价于 数字 200 ( * 是乘法运算符)
    10 * "20" 等价于 数字 200
    "10" * "20" 等价于 数字 200
    10 & 20 等价于 字符串 "1020" ( & 是字符串连接运算符)

数字类型

数字可以是标准的十进制数, 2, 4.566, -7
指数形式也被支持,因此你可以用 1.5e3 来代替 1500.
(说明:字母e或E后面的数表示指数,因此上例等价于1.5*10*10*10,字母e或E之前必须要有数字,而且需用小数表示,e或E后面的指数必须是整数)
整数还可以用十六进制来表示, 但需添加前缀 0x ,如 0x4090x4fff(此时只有32位的数值才是合法的数字)..

  
字符串类型(String)
字符串以一对英文双引号括起来,比如 "这样".  若需表示一个包含双引号的字符串则需连续两次用双引号括起来,比如:
     "这里是一对 ""双引号"" - ok?"
此外还可以用一对单引号括起来以表示字符串,比如 '这样''这里是一对 ' '单引号'' - ok?'
有时一个字符串包含大量双引号或单引号, 则可以通过混和使用使得对字符串的表示更加简单. 比如下例:
     '这个 "句子" 中包含了 "很多" 的 "双引号" ,留意到了吗?'
该例使用了单引号来括住字符串,看起来就没有下面常规的表示方法那么累赘了.
     "这个 ""句子"" 中包含了 ""很多"" 的 ""双引号"". 能留意到吗?"
当求值时,字符串可以有一个环境变量或者变量代替 Opt() 函数定义.
  
布尔值(Booleans)
布尔值是一个 逻辑值.只有 truefalse (真和假).
你可以给一个变量赋值, 使用布尔操作 and, ornot.
例子1:
$Boolean1 = true
$Boolean2 = false
$Boolean3 = $Boolean1 AND $Boolean2
结果: $Boolean3 为 false
例子2:
$Boolean1 = false
$Boolean2 = not $boolean1
结果: $Boolean2 为 true
如果布尔值使用其它数的和, 将会得到下面的结果:
数值0等于布尔值 false
任何其它数值将会等于布尔值 true
例子3:
$Number1 = 0
$Boolean1 = true
$Boolean2 = $Number1 and $Boolean1
(如果含有失败)这个结果将会返回 false
如果您计算一个布尔值的算术.( 这是不明智的!), 将会返回下面的结果:
如果布尔值为 true 将会转换为数值 1
如果布尔值为 false 将会转换为数值 0
例子4:
$Boolean1 = true
$Number1 = 100
$Number2 = $Boolean1 + $Number1
这个$Number2结果将会返回数值 101
如果您使用字符串进行布尔值连接, 将会返回下面的结果:
如果布尔值为 true 将会返回字符串 "True"
如果布尔值为 false 将会返回字符串 "False"
例子5:
$Boolean1=true
$String1="Test is: "
$String2=$String1 & $Boolean1
这个结果将会返回字符串"Test is: True"
如果要从反方向来比较布尔值,结果是不同的. 当您使用字符串比较布尔值请使用下面的方法:
只有空字符串("")才能返回布尔值 false
任何其它的字符串(包括字符串等于"0") 都将会返回布尔值 true

展开
收起
码栈 2017-01-05 14:58:14 2634 分享 版权
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: