语言相关-什么是变量-问答-阿里云开发者社区-阿里云

开发者社区> 码栈> 正文

语言相关-什么是变量

2017-01-05 15:12:59 2741 0
什么是变量



所谓变量是指在为了快速读取而在内存中保存数据的一块空间. 您可以把它想象成是一个在内存里的邮箱, 我们可以往里面存信也可以取信.例如您可以创建 一个变量用来保存用户回复的数值或者某个数学表达式的 运算结果.
每个变量都有自己的名字(这跟邮箱是不是很像?)而且必须以英文 字符" $"开头,其中只能包含 字母, 数字 和下划线 _字符.  下面是一些有效的变量名:
    $var1
    $my_variable

每个变量都储存为一个 Variant.


变量的声明


使用关键字 Dim, LocalGlobal 来声明并创建变量:
    Local $var1
还可以像下面这样一次声明多个变量:
    Local $var1, $myvariable

另外还可以 声明某个变量时直接对其赋值.
    Local $var1 = "创建并赋值"
    Local $var2 = 100


声明常量


常量声明使用 Const 关键字,就像:
    Const $const1 = 1, $const2=12
声明的常量可以用 Enum关键字进行初始化,就像:
    Enum $const1 = 1, $const2, $const3    ; 1, 2, 3
    Enum STEP 2 $incr0, $incr2, $incr4    ; 0, 2, 4
    Enum STEP *2 $mult1, $mult2, $mult4   ; 1, 2, 4

常量不能声明为一个已经存在的变量.


变量的作用域


某个变量的作用域要看您是何时以及如何声明该变量的. 如果您在代码开头且在所有函数之外声明了某个变量 则该变量将在 Global(全局)范围内存在,此时您就可以在代码的任意位置读取或更改该变量, 我们把这种变量称为全局变量.
如果您是在某个 函数 内部声明一个变量则该变量就只在该函数的 Local(局部) 范围内有效,我们把这种变量称为局部变量. 在函数内创建的变量将在函数结束时 自动被销毁.
在默认情况下,使用 Dim 声明的变量或在函数内部直接赋值而成的变量都是 Local(局部)变量, 除非 有同名的全局变量存在(此时将视此变量为该全局变量).  另外我们可以使用关键字 LocalGlobal 来声明变量以 强制 变量的作用域.

数组


所谓 数组是一系列具有相同类型和大小的变量的集合. 其中每个变量可以用相应的索引序号(下标)来访问.

例如:

假设你要存取这样一系列的字符: "码", "栈", "-", "让", "一", "切", "自", "动", "化", "!".
你可以使用多个单独的变量来完成,但使用如下数组将更有效率:
$Array[0]="码"
$Array[1]="栈"
..等等..
$Array[9]="!"
存取数组中的某个特定值,你只需知道它的索引序号(下标):
$MyChar=$Array[2]
这将使变量 $MyChar 的值为字母"T" (参见: '运算符').


下标也可以使用变量或表达式,所以你可以建立更加复杂的方式来赋值或访问数组.


数组可以是多维的,当你使用多个下标时, 例如:
$Array[0][0]="Upper-Left"
$Array[1][0]="Lower-Left"
$Array[0][1]="Upper-Right"
$Array[1][1]="Lower-Right"
(这里只是举个例子)

你最高可以使用 64 维数组变量. 元素总数不能超过 2^24 (16 777 216).

当你在使用数组之前, 你必须使用关键字 'Dim'来定义它的维数.



数组里面的数据类型



有人说数组仅能包含 一种数据类型. 但是从技术上来讲,变量可以包含包括布尔值在内的任何数据. 所以一个数组可以包含不同的类型, 甚至别的数组:
$Array[0]=1
$Array[1]=true
$Array[2]="Text"
$Array[3]=$AnotherArray
虽然并不明确禁止在一个数组中混合使用多种数据类型. 然而,那样做是 极不明智的.尤其是当一个数组内使用另一个数组时,将严重影响应用的运行速度!
取消 提交回答
全部回答(0)
相关问答

54

回答

阿里云已停止对MySQL5.1的版本维护,快快快升级版本吧

rds-pd 2014-11-12 16:21:57 62113浏览量 回答数 54

38

回答

干货分享:DBA专家门诊一期:索引与sql优化问题汇总

xiaofanqie 2014-12-25 15:13:38 91765浏览量 回答数 38

8

回答

OceanBase 使用动画(持续更新)

mq4096 2019-02-20 17:16:36 333874浏览量 回答数 8

36

回答

SQL Server优化案例分享【精品问答集锦】

管理贝贝 2016-08-25 10:14:03 45356浏览量 回答数 36

27

回答

阿里云开源软件镜像站点上线啦!!

qilu 2014-01-06 18:14:06 95736浏览量 回答数 27

11

回答

【精品问答合集】MongoDB热门问答

李博 bluemind 2019-05-29 16:50:19 120876浏览量 回答数 11

31

回答

【入门教程系列】Linux系统建站完整教程(适用于新手初级站长)

wujian8150 2011-09-26 16:53:51 49013浏览量 回答数 31

11

回答

速戳 | 20位阿里出题专家-备战阿里必不可少的题目

Runt 2020-04-15 10:54:04 56709浏览量 回答数 11

19

回答

云数据库RDS MySQL版【问答合集】

我是管理员 2018-08-03 15:10:37 44693浏览量 回答数 19

1

回答

阿里云各种产品使用索引(更新2015.08.17)

梦丫头 2015-07-18 12:19:16 71557浏览量 回答数 1
+关注
0
文章
24
问答
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载