模块中的参数问题

原创 2012年03月25日 15:57:48

一、定义参数
  在模块头部定义参数
  如:procedure proc_name(para_name in datatype [{:=value | default value}] [, ...])
  1、para_name为参数名
  2、in 为参数模式,参数模式有in,out,in out
  3、datatype为数据类型,该数据类型不受约束,也即只有数据类型的名称,不能有数据长度,如:varchar2。
  4、:=value 为参数的默认值,也可以使用default value定义默认值。
二、形参和实参
  形参为在模块头部的参数列表中声明的参数的名称。
  实参为在调用模块时放置在参数列表中的真实值或者表达式。
  形参只能存在于模块中,可以把形参看做占位符,在执行模块时,实参将替换形参。
  形参和对应的实参的数据类型必须能够兼容。
三、参数模式
  1、in
    只能通过in模式的参数向模块传入数据,但不能通过in模式的参数传出数据。
    模块可以读取in模式参数的值,不能修改参数的值。
    in模式为默认的参数模式,如果不写即为in模式参数。
    可以使用:=或者default为in模式参数定义初始值。
    in模式参数对应的实参可以使变量,常量,直接值,或者表达式。
  2、out
    out模式为只写,可以通过out模式参数,模块向调用程序传出数据,模块可以修改out模式参数的数值,但不能读取参数的值。
    out模式参数在模式成功结束之前,没有任何值(除非使用nocopy提示),在模块的执行过程中,针对out模式参数所做的任何赋值,实际上都是在对一个副本进行操作。在模 

块成功执行之后,这个副本的值才会真正传递给out模式参数。
    规则:不能把out模式参数的值赋值给其他变量
          不能为out模式参数提供初始值
          如果模块执行异常,任何对out模式参数的赋值操作都会被回滚。(可以在异常处理中为参数赋值)
          对应于out模式参数的实参只能是变量。
  3、in out
    in out模式的参数是可读可写的。
    通过in out模式的参数,可以为模块传入数据,也可以为调用程序传出数据。
    规则:不能为in out模式的参数设置初始值
          与in out模式参数对应的实参只能是变量
四、实参与形参的映射的方法
  1、位置表示法
    在调用模块时,根据参数的位置进行关联。也即第n个实参对应第n形参。
  2、命名表示法
    使用‘=>'连接符显示地把实参和形参建立关联。
    使用命名表示法可以不按照形参的顺序
    当有默认值的形参处于没有默认值的形参之间,且又想不写该参数的实参,使用其默认值时,要使用命名表示法
  3、混合法
    既包含位置表示法,又有命名表示法
    命名表示法,可以不按照形参的顺序,但使用位置表示法的实参必须与形参的位置相对应。
五、初始值
  可以为in模式的参数定义初始值,不能为out和in out模式的参数定义初始值。
  使用':='或者default为参数定义初始值
  在调用模块时,如果没有有初始值的参数提供实参,则该参数使用默认值。

 

模块化程序设计-参数和结果传递的问题

子程序一般都要根据提供的参数处理一定的事物,处理后,将结果(返回值)提供给调用者。其实,我们讨论参数和返回值传递的问题,实际上就是在探讨,应该如何储存子程序需要的参数和生成的返回值。   比如 ,设...

STL 作为参数 跨模块调用 问题

1.不同版本的stl实现不一样,导致list、vector等内部数据结构不一样,这样在不同版本的模块中传递时,数据结构就会不正确 2.std::alloc的问题,也就是内部内存在不同的模块里面进...

Android照相机模块编程 照片颠倒问题及查询摄像头参数问题的解决

这两天编程弄Android照相机模块,设置好各种参数后,发现预览的时候,照片是颠倒了,不是上下颠倒而是颠倒90°。 我的手机是华为U9200,用的Android4.0.3,后来看到http://www...

LPM参数化宏模块应用.pdf

  • 2013年08月02日 19:44
  • 843KB
  • 下载

Python 有两个内建的模块(getopt,optparse)用于处理命令行参数

Python 有两个内建的模块用于处理命令行参数: 一个是 getopt,《Deep in python》一书中也有提到,只能简单处理 命令行参数; 另一个是 optparse...

用u-center软件修改GPS模块参数

  • 2013年03月23日 17:56
  • 792KB
  • 下载

perl模块 Getopt::Long解析参数

Getopt::Long模块是用于解析命令行参数的perl模块 选项解析 其他用法 使用options调用subroutines 多命名选项 捆绑选项 - 和 GetoptLongConfigure...

EDA9011D单相电参数采集模块.pdf

  • 2012年11月29日 10:39
  • 241KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:模块中的参数问题
举报原因:
原因补充:

(最多只允许输入30个字)