精华内容
下载资源
问答
  • 所以过程内定义的变量,在过程无法访问。例如,下面例子中定义了过程add,调用过程add后,无法访问变量c,因为c是局部变量。 % proc add {a b} { set c [expr $a+$b] } % add 3 4 7 % set c can't read "c...

    局部变量

    局部变量在过程执行完毕返回时自动销毁,结束其生命周期。所以过程内定义的变量,在过程外无法访问。例如,下面例子中定义了过程add,调用过程add后,无法访问变量c,因为c是局部变量。

    % proc add {a b} {
    set c [expr $a+$b]
    }
    % add 3 4
    7
    % set c
    can't read "c": no such variable

    全局变量

    特指全局名字空间(::)中的全局变量

    举例如下

    定义了全局变量c,赋值2;

    % set c 2
    2

    定义过程add1,在过程中通过::c的方式使用了全局变量c;
    % proc add1 {a b} {
    set ::c [expr $a+$b]
    return $::c
    }

    调用过程add1
    % add1 3 4
    7

    之后查看全局变量c的值也随add1的调用改变。
    % set c
    7

    另外一种在过程中调用全局变量的方法

    % set c                              ;#c的初值为7
    7
    % proc add2 {a b} {    
    global c                             ;#引用全局变量c
    set c [expr $a+$b+$c]
    return $c
    }
    % add2 4 5                        ;#调用过程add2
    c
    % set c                                ;#调用过程add2后,c的值变成16
    16

    名字空间的变量

    也有全局和局部之分,与上面类似,只是名字空间不同。

    举例如下

    % set len 300
    300
    % set wid 100
    100

    % namespace eval cc {
      variable len 30
      variable wid 10
      proc area {a b} {
        variable len                          ;#引用名字空间cc的全局变量len和wid
        variable wid
        puts "$len,$wid\n"             ;#输出名字空间cc的全局变量len和wid
        set area [expr $a*$b]
        return $area
      }
    }
    % cc::area $len $wid            ;#调用全局变量len和wid,注意与下面的差别  
    30,10

    30000
    % cc::area $cc::len $cc::wid  ;#调用名字空间cc的全局变量cc::len和cc::wid
    30,10

    300
    %

    总结 global关联的是全局名字空间(::)中的全局变量,

              varible关联的是命令所在名字空间的全局变量。

    展开全文
  • sed命令的变量替换举例

    千次阅读 2013-06-09 16:33:54
    sample.txt: this is a teacher this is a professor that is a boy that is a girl she is beautiful lady ...sed命令使用变量 1. 搜索指定字符串的行,并打印出来 root# sed -n '/this/p' sample.txt th
    sample.txt:
    this is a teacher
    this is a professor
    that is a boy
    that is a girl
    she is beautiful lady
    he lost his way




    sed命令使用变量
    1. 搜索指定字符串的行,并打印出来
    root# sed -n '/this/p' sample.txt
    this is a teacher
    this is a professor


    将this以变量替换来搜索,并打印出来
    root# word=this
    root# sed -n '/'$word'/p' sample.txt
    this is a teacher
    this is a professor


    2. 搜索指定行号,并打印出来
    root# sed -n '2p' sample.txt
    this is a professor


    将行号以变量形式替换,并打印出来
    root# lineno=2
    root# sed -n "$lineno"'p' sample.txt
    this is a professor


    3. 搜索双模式匹配的行,并打印出来
       (a):A与B关系
    root# sed -n '/that/{/is/p}' sample.txt
    that is a boy
    that is a girl


    将that和is以变量形式替换,并打印出来
    root# sed -n '/'$word1'/{/'$word2'/p}' sample.txt
    that is a boy
    that is a girl
       (b):A或B关系
    root# sed -n '/that\|way/p' sample.txt 或者用( sed -n -e '/that/p' -e '/way/p' sample.txt)
    that is a boy
    that is a girl
    he lost his way




    4. 替换指定字符串,如用THAT 替换that
    root# sed  's/that/THAT/g' sample.txt
    this is a teacher
    this is a professor
    THAT is a boy
    THAT is a girl
    she is beautiful lady
    he lost his way
    只显示替换行
    root# sed -n 's/that/THAT/g''p' sample.txt
    THAT is a boy
    THAT is a girl


    将THAT以变量形式替换掉that,并显示替换行
    root# sed -n 's/that/'$word'/g''p' sample.txt
    THAT is a boy
    THAT is a girl
    word不加单引号则打印出:
    $word is a boy
    $word is a girl


    5. 替换模式boy的匹配行中指定字符串that,并打印出来
    root# sed -n '/boy/  s/that/THAT/g''p' sample.txt
    THAT is a boy


    将THAT以变量形式替换掉that,并显示替换行
    root# sed -n '/boy/  s/that/'$word'/g''p' sample.txt
    THAT is a boy


    6. 替换模式(that与girl中有任意个字符)匹配行中指定字符串,并打印出来
    root#sed -n '/that.*girl/  s/that/THAT/g''p' sample.txt
    THAT is a girl
    当模式中任意个字符用“.*”作为通配符。


    7. 替换多模式匹配
    多个匹配可以用匿名管道方式过滤
    root#$ sed -n '/that/{/is/p}' sample.txt |sed -n 's/boy/BOY/g'p
    that is a BOY
    但是这样替换不能够将sample.txt文件中对应部分替换,如果要替换,可以先获取改行行号,然后做替换动作。


    root# linenos=`sed -n '/that/{/is/=}' sample.txt`
    root# echo $linenos
    3 4
    root# for lineno in $linenos
    > do
    > sed -i ''"$lineno"' {s/boy/BOY/g; s/girl/GIRL/g}' sample.txt
    > done
    root# cat sample.txt
    this is a teacher
    this is a professor
    that is a BOY
    that is a GIRL
    she is beautiful lady
    he lost his way



    展开全文
  • --引用型变量 --打开oracle的输出口 --set serveroutput on declare --定义引用型变量,查询并打印1232的姓名和薪水 --pename varchar2(20);--这2句和下面的2句效果一致 --psal number; pename emp.ename%type...
    --引用型变量
    
    --打开oracle的输出口
    --set serveroutput on
    
    declare
        --定义引用型变量,查询并打印1232的姓名和薪水
        --pename varchar2(20);--这2句和下面的2句效果一致
        --psal number;
        pename emp.ename%type;
        psal emp.sal%type;
    begin
        --得到1232的姓名和薪水
        --赋值的方式有:=和into
        select ename,sal into pename,psal from emp where empno=122;
        
        --打印姓名和薪水
        dbms_output.put_line(pename||'的薪水是'||psal);
        
        
    end;
    /
        

    记录型变量程序举例:

    --记录型变量:取表中的一行的类型作为变量的类型,
    --可以把记录型变量理解成一个数组,而数组中的每一个元素代表每一列
    
    --举例 rec是记录的简写,row是行,type是类型,就是行类型
     -- emp_rec emp%rowtype;
    --记录型变量分量的引用
     -- emp_rec.ename:='ADAMS';
     
     --使用记录变量,查询并打印123的姓名和薪水
     --set serveroutput on
     declare
         --定义记录型变量:注意代表一行
         emp_rec emp%rowtype;
     begin
        --得到123一行的信息
        
        select * into emp_rec from emp where empno=123;
        
        --打印姓名和薪水
        dbms_output.put_line(emp_rec.ename||'的薪水是'||emp_rec.sal);
       end;
       --/


    展开全文
  • 结构体指针变量使用方法举例

    千次阅读 2012-11-07 15:38:07
    #include #include ...//求和函数(输入变量是结构体变量) int myAdd(xyCdnt xyCdntLoc) { int sum; sum=xyCdntLoc.x+xyCdntLoc.y; return sum; } //求和函数(输入变量是结构体类型指针)

    #include <stdio.h>
    #include <stdlib.h>
    
    //定义结构体类型xyCdnt
    struct xyCdnt
    {
    	int x;
    	int y;
    };
    
    //求和函数(输入变量是结构体变量)
    int myAdd(xyCdnt xyCdntLoc)
    {
    	int sum;
    	sum=xyCdntLoc.x+xyCdntLoc.y;
    
    	return sum;
    }
    
    //求和函数(输入变量是结构体类型指针)
    int myAddP(xyCdnt *xyCdntLocP)
    {
    	int sum;
    	sum=xyCdntLocP->x+xyCdntLocP->y;
    
    	return sum;
    }
    
    //求和函数(输入变量是基本变量int型)
    int myAddInt(int x,int y)
    {
    	int sum;
    	sum=x+y;
    
    	return sum;
    }
    
    int main()
    {
    	//结构体变量声明
    	xyCdnt xyCdntObj0;
    	xyCdntObj0.x=1;
    	xyCdntObj0.y=2;
    	printf("row1: x=%d y=%d\n",xyCdntObj0.x,xyCdntObj0.y);
    	
    	//结构体类型指针
    	xyCdnt *pXyCdntObj;
    	pXyCdntObj=&xyCdntObj0;
    	printf("row2: x=%d y=%d\n",pXyCdntObj->x,pXyCdntObj->y);
    
    	//用结构体指针改变成员值
    	pXyCdntObj->x=3;
    	pXyCdntObj->y=4;
    	printf("row3: x=%d y=%d\n",pXyCdntObj->x,pXyCdntObj->y);
    	
    	int sum1,sum2,sum3,sum4,sum5,sum6,sum7;
    	sum1=myAdd(xyCdntObj0);	//传递结构体变量
    	printf("row4: sum1=%d\n",sum1);
    	sum2=myAdd(*pXyCdntObj); //传递结构体指针的内容
    	printf("row5: sum2=%d\n",sum2);
    	sum3=myAddP(pXyCdntObj); //传递结构体指针
    	printf("row6: sum3=%d\n",sum3);
    	sum4=myAddP(&xyCdntObj0);  //传递结构体的地址
    	printf("row7: sum4=%d\n",sum4);
    	sum5=myAddInt(xyCdntObj0.x,xyCdntObj0.y); //传递结构体变量的成员
    	printf("row8: sum5=%d\n",sum5);
    	sum6=myAddInt(pXyCdntObj->x,pXyCdntObj->y); //通过结构体类型指针传递成员
    	printf("row9: sum6=%d\n",sum6);
    	sum7=myAddInt((*pXyCdntObj).x,(*pXyCdntObj).y); //通过结构体类型指针的内容传递成员
    	printf("row10: sum7=%d\n",sum7);
    
    	system("pause");
    
    	return 1;
    }
    


    展开全文
  • //全局变量 任何地方都可以使用 function demo(){ var i=10;//局部变量 只能在当前函数中使用 x=10;//全局变量的另外一种定义形式 任何地方都可以使用 } demo(); alert(x);
  • 全局变量和局部变量的区别:通过调用函数举例a.全局变量申明位置在所有代码块之外,不存储于堆栈,作用域为从申明到文件尾,如果申明为static,不允许从其他文件访问b.局部变量申明位置在代码块起始处,存储于堆栈,...
  • 变量函数和回调函数的使用次数在编程中非常的高,了解其如何声明定义及如何使用对我们完善数据结构非常重要
  • 什么是变量和内生变量

    千次阅读 2020-05-19 21:03:50
    python的计量经济学包statsmodels中使用endog和exog作为数据参数的变量名,即在估计问题中使用的观测变量。在不同的统计软件包或教科书中经常使用的其他名称,例如endog/exog被叫做因变量(dependent variable)/自...
  • 例如 当前下载的Node文件解压到/root/目录下 ln -s /root/node/bin/node /usr/sbin/node 创建软连接就好比创建快捷方式 注意:上面的目录是实际的软件目录 .../root/node/bin/node 后面不能省略空格 ...
  • Java变量

    万次阅读 多人点赞 2019-09-29 00:06:53
    文章目录定义分类按被声明的位置划分成员变量局部变量成员变量和局部变量的区别使用原则按所属的数据类型划分基本数据类型变量引用数据类型变量定义格式注意事项 定义 在程序执行的过程中,在某个范围内其值可以...
  • SQL里变量的声明以及常用函数举例

    千次阅读 2012-01-14 16:21:02
    ①声明变量:DECLARE 关键字 ②循环语句:WHILE ...   BEGIN ...  END  ③数据类型转换:CAST()函数 应用举例: 初始化脚本: CREATE TABLE [dbo].[TEST]( [ID] [int] IDENTITY(1,1) NOT
  • LINUX系统编程这一快的知识,如果不经常使用的话,可能也会忘记,在项目中,可以代码可以看懂,但是自己亲自写...当锁住的共享变量发生改变时,可能需要通知相应的线程(因为可能该共享变量涉及到多个线程),这时就需
  • 例如定义一个类: class Text { public static int number; public int temp;...这就是实例成员变量。 而你想 访问number的话,不用创建Text的实例就可以访问,就像这样:Text.number.这就是类成员变
  • C语言中,static关键字可以用在全局范围,也可以用在函数范围,还可以用在局部范围! 先上实验代码: ...//局部范围定义的static变量j j++; printf("i=%d,j=%d.\n",i,j); } else{ static int j=
  • 文章目录1、变量的声明1.1、标准格式1.2、简短格式1.3、批量格式2、变量的初始化2.1、标准格式2.2、编译器推导类型的格式2.3、声明并初始化3、多个变量同时赋值4、匿名变量(没有名字的变量)5、变量的作用域5.1、...
  • 关于java成员变量和局部变量

    万次阅读 多人点赞 2018-09-14 10:46:45
    1、成员变量和局部变量简述 在Java语言里,根据定义变量位置的不同,可以将变量分成两大类:成员变量(存在于堆内存中,和类一起创建)和局部变量(存在于栈内存中,当方法执行完成,让出内存,让其他方法来使用内存)...
  • 1、前言 相信同学们一定懵逼过,那是,不懵逼就不正常了,现在由我为了大家在轻松的氛围... b、局部变量:在函数内、在class的方法(构造、类方法、静态方法、实例方法)内(变量未加self修饰),这就是局部变量 ...
  • php中检测变量是否是一个对象的is_object函数介绍及用法举例 php函数is_object:检测变量是否是一个对象 函数描述 bool is_object ( mixed $var ) 如果 var 是一个 object 则返回 TRUE,否则返回 ...
  • 【数据收集】名义变量、序级变量、区间变量、比率变量的理解及例子名义变量(Nominal Variable)分类及举例序级变量(Ordinal Variable)分类和举例区间变量(Interval Variable)分类和举例比率变量分类和举例...
  • 变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据。脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell 变量也遵循这个规则。 在 Bash shell 中,每一个变量的值都是字符串,无论...
  • 成员变量: @interface MyViewController :UIViewControlle  {  UIButton *yourButton;   int count;   id data;  }  成员变量用于类内部,无需与外界接触的变量,成员变量默认是protected,一般...
  • 概念首先得明白局部变量,静态局部变量,全局变量,静态全局变量这几个概念,以下面程序举例://main.cpp int a = 0; //全局变量 static int b=0;//静态全局变量 main() { int c; //局部变量 static int d;//静态...
  • 函数内和若存在同名变量,则函数内部变量会覆盖外部变量 脚本举例: #! /bin/bash var1="hello world" function test { var2=87 } test echo var1 #hello world echo var2 #87 function test2 { ...
  • 自由变量和约束变量

    千次阅读 2016-05-10 17:46:47
    在程序设计语言中,变量可分为自由变量与约束变量两种。简单来说,局部变量和参数都被认为是约束变量;而不是约束变量的则是自由变量。 在冯·诺依曼计算机体系结构的内存中,变量的属性可以视为一个六元组:(名字...
  • shell变量之环境变量

    千次阅读 2016-10-14 10:46:10
    shell程序中采用变量存放字符串,但shell的变量比C语言的变量简单,没有众多存储类及类型的限制,也不需要预先定义,然后才能赋值,可以在使用时“边定义,边赋值”。 shell有两种变量:环境变量和临时变量。环境...
  • python变量总结: 全局变量、局部变量、类变量、实例变量以及global和nonlocal关键字的使用示例 前言:Python也同多数编程语言一样,也有全局变量与局部变量的概念, 但是与其他编程语言又有所不同: 全局变量与局部...
  • 二元随机变量

    千次阅读 2017-04-02 07:07:25
    本章记录 1二元随机变量的定义 2二元离散型随机变量的... 举例:研究入学儿童的发育情况。从一个样本(儿童)的身高、体重,两个维度研究。这用面向对象的编程角度理解类似于一个实体,有两个属性。  再个栗子
  • 把Java中的实例变量、局部变量、类变量与final变量之间的关系的思路重新整理一遍。俗话说的好“好记忆不如烂笔头”,在此分享一下。
  • Shell脚本攻略02-玩转变量与环境变量

    千次阅读 2016-12-03 00:29:17
    变量是任何一种编程语言都必不可少的组成部分,用于存放各类数据。 脚本语言通常不需要在使用变量之前声明其类型。只需要直接赋值就可以了。 在Bash中,每一个变量的值都是字符串。 无论你给变量赋值时有没有使用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 330,302
精华内容 132,120
关键字:

外变量举例