写函数,检查用户js 传入对象参数的对象的每一个元素是否含有空内容

oracle查看用户对象
oracle查看用户对象
查看当前用户的缺省表空间
SQL& select
username,default_tablespace
查看当前用户的角色
SQL& select
user_role_
查看当前用户的权限和表级权限
SQL& select
SQL& select
查看用户下所有的表
SQL& select
table_ name
查看名称包含log字符的表
SQL& select
object_name,object_id
user_objects
instr(object_name,'LOG')& 0;
查看某表的创建时间
SQL& select
object_name,created
user_objects
object_name=upper('&table_name');
查看某表的大小
SQL& select
sum(bytes)/()
user_segments
segment_name=upper('&table_name');
查看放在ORACLE的内存区里的表
SQL& select
table_name,cache
user_tables
instr(cache,'Y')& 0;
查看索引个数和类别
SQL& select
index_name,index_type,table_name
user_indexes
查看索引被索引的字段
SQL& select
user_ind_columns
index_name=upper('&index_name');
查看索引的大小
SQL& select
sum(bytes)/()
user_segments
segment_name=upper('&index_name');
四、序列号&
查看序列号,last_number是当前值&
SQL& select
查看视图的名称&
SQL& select
查看创建视图的select语句&
view_name,text_length
说明:可以根据视图的text_length值设定set
SQL& select
user_views
view_name=upper('&view_name');
六、同义词&
查看同义词的名称&
SQL& select
七、约束条件&
查看某表的约束条件&
SQL& select
constraint_name,
constraint_type,search_condition,
r_constraint_name
user_constraints
table_name
upper('&table_name');
SQL& select
c.constraint_name,c.constraint_type,cc.column_name
user_constraints
c,user_cons_columns
upper('&table_owner')
c.table_name
upper('&table_name')
c.constraint_name
cc.constraint_name
八、存储函数和过程&
查看函数和过程的状态
SQL& select
object_name,status
user_objects
object_type='FUNCTION';
SQL& select
object_name,status
user_objects
object_type='PROCEDURE';
查看函数和过程的源代码
SQL& select
all_source
owner=user
name=upper('&plsql_name');
九、触发器&
查看触发器&
'create
& & trigger_name
'&'
chr(10) & &
trigger_type,
'A',
'AFTER',
'B',
'BEFORE',
'I',
'INSTEAD
triggering_event
table_owner
'&.&'
table_name
'&'
trigger_type,
trigger_body
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'博客访问: 33247
博文数量: 12
博客积分: 291
博客等级: 二等列兵
技术积分: 147
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: C/C++
如果函数的传入参数和返回值是对象,那么这个过程中会发生哪些我们未曾注意过的细节呢?我在VS2008下做了如下实验,并做出了简单的分析,有不足或者不准确的地方,欢迎大家拍砖,我会及时修正相关内容。一、函数的传入参数是对象。#include
class Person
&&&&Person(int nAge):m_nAge(nAge){ cout << _T("创造了一个年龄为") << m_nAge << _T("的人") << }
&&&&Person(Person& Somebody):m_nAge(Somebody.m_nAge + 10) { cout << _T("复制创造了一个年龄为") << m_nAge << _T("的人") << }
&&&&~Person() { cout << _T("析构了一个年龄为") << m_nAge << _T("的人") << }
&&&&int m_nA
void Test(Person Somebody)
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
&&&&Person Mike(20);
&&&&Test(Mike);
&&&&return 1;
}上述代码的执行结果如下:对于上述代码做如下简单解释:Person Mike(20);创造了一个年龄为20的人Test(Mike);将Mike作为Test函数的实参传入,Person Somebody的复制构造函数被调用。当Test函数返回后,Somebody这个对象的生命周期结束,它的析构函数被调用。当_tmain函数返回后,Mike这个兑现的声明周期结束,它的析构函数被调用。上述代码中存在一个比较关键的地方,那就是在调用Test函数的时候,涉及到将Mike对象拷贝给Somebody对象。#include
class Person
&&&&Person(int nAge):m_nAge(nAge){ cout << _T("创造了一个年龄为") << m_nAge << _T("的人") << }
&&&&Person(Person& Somebody):m_nAge(Somebody.m_nAge + 10) { cout << _T("复制创造了一个年龄为") << m_nAge << _T("的人") << }
&&&&~Person() { cout << _T("析构了一个年龄为") << m_nAge << _T("的人") << }
&&&&int m_nA
void Test(Person Somebody)
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
&&&&Person Mike(20);
&&&&Test(Person(50));
&&&&return 1;
}上述代码的执行结果如下:我们可以从结果中看到,这次并没有拷贝构造函数被调用,个人猜测,Person(50)这个临时构造的对象就是Somebody这个对象,它们实际上是一个对象,存在于Test函数的栈中,至于这是C++本身的标准还是VS2008帮助我们优化之后的结果,尚未进行研究。二、函数的返回值是对象。#include
class Person
&&&&Person(int nAge):m_nAge(nAge){ cout << _T("创造了一个年龄为") << m_nAge << _T("的人") << }
&&&&Person(Person& Somebody):m_nAge(Somebody.m_nAge + 10) { cout << _T("复制创造了一个年龄为") << m_nAge << _T("的人") << }
&&&&~Person() { cout << _T("析构了一个年龄为") << m_nAge << _T("的人") << }
&&&&int m_nA
Person Test()
&&&&Person Jack(30);
&&&&return J
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
&&&&Person Tom = Test();
&&&&return 1;
}上述代码的执行结果如下:上述代码的简单解释:Test函数被执行,Person Jack(30)被执行,构造函数被调用。Person Tom = Test();Test函数执行完成之后,将Jack对象拷贝给Tom对象,所以,Tom的拷贝构造函数被执行,返回值赋值完成之后,Jack对象的生命周期结束,析构函数被执行,_tmain函数返回之后,Tom对象的生命周期结束,析构函数被执行。#include
class Person
&&&&Person(int nAge):m_nAge(nAge){ cout << _T("创造了一个年龄为") << m_nAge << _T("的人") << }
&&&&Person(Person& Somebody):m_nAge(Somebody.m_nAge + 10) { cout << _T("复制创造了一个年龄为") << m_nAge << _T("的人") << }
&&&&~Person() { cout << _T("析构了一个年龄为") << m_nAge << _T("的人") << }
&&&&int m_nA
Person Test()
&&&&Person Jack(30);
&&&&return J
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
&&&&Test();
&&&&cout << _T("-----------------------") <<
&&&&return 1;
}上述代码的执行结果如下:简单的分析上述代码:我们看到,代码中并没有定义一个对象来接受Test函数的返回值,但是系统仍然为我们创造了一个临时的对象来接受Test函数的返回值,但是因为这个临时的对象并没有被我们用到,所以,它马上就被析构了。#include
class Person
&&&&Person(int nAge):m_nAge(nAge){ cout << _T("创造了一个年龄为") << m_nAge << _T("的人") << }
&&&&Person(Person& Somebody):m_nAge(Somebody.m_nAge + 10) { cout << _T("复制创造了一个年龄为") << m_nAge << _T("的人") << }
&&&&~Person() { cout << _T("析构了一个年龄为") << m_nAge << _T("的人") << }
&&&&int m_nA
Person Test()
&&&&return Person (30);
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
&&&&Person Tom = Test();
&&&&cout << _T("-----------------------") <<
&&&&return 1;
}上述代码的执行结果如下:我们可以从结果中看到,这次并没有拷贝构造函数被调用,个人猜测,Person(30)这个临时构造的对象就是Tom这个对象,它们实际上是一个对象,存在于_tmain函数的栈中,至于这是C++本身的标准还是VS2008帮助我们优化之后的结果,尚未进行研究。三、函数的传入参数和返回值都是对象。#include
class Person
&&&&Person(int nAge):m_nAge(nAge){ cout << _T("创造了一个年龄为") << m_nAge << _T("的人") << }
&&&&Person(Person& Somebody):m_nAge(Somebody.m_nAge + 10) { cout << _T("复制创造了一个年龄为") << m_nAge << _T("的人") << }
&&&&~Person() { cout << _T("析构了一个年龄为") << m_nAge << _T("的人") << }
&&&&int m_nA
Person Test(Person Somebody)
&&&&return S
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
&&&&Person Mike(20);
&&&&Person Tom = Test(Mike);
&&&&return 1;
}上述代码的执行结果如下:上述代码的简单解释如下:Person Mike(20);构造函数被执行将Mike作为实参传入到Test函数当中,实参到形参的拷贝过程调用了Somebody的拷贝构造函数。Test函数执行结束,Somebody对象被拷贝给Tom对象,调用了Tom对象的拷贝构造函数。Somebody的生命周期结束,析构函数执行。Tom对象的生命周期结束,析构函数被执行。Mike对象的生命周期结束,析构函数被执行。
阅读(2196) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。1、简述普通参数、指定参数、默认参数、动态参数的区别
普通参数:以正确的顺序传入函数,调用时数量必须和声明的一样。
指定参数:参数和函数调用关系密切,函数调用使用使用关键字参数来确定传入的参数值,参数允许函数调用时参数的顺序和声明时不一致。
默认参数:函数进行调用时,如果没有新的参数传入则默认的情况下,就调用默认参数
动态参数:个函数能处理比当初声明时更多的参数,这些参数叫动态参数
2、写函数,计算传入的字符串中数字、字母、空格、以及其他的个数
#####判断字母数字出现的次数########
def func1(s):#定义一个函数
#字符串中出现的数字、字母、空格等其他的符号,初始值为0
zimu_num = 0
kongge_num = 0
shuzi_num = 0
qita_num = 0
for i in s:#对字符串进行循环判断
if i.isalpha():
zimu_num += 1
elif i.isspace():
kongge_num += 1
elif i.isdigit():
shuzi_num += 1
qita_num += 1
return (zimu_num,kongge_num,shuzi_num,qita_num)#把所有的结果返回到一个元组中
m = func1("wewqe-*-
**-wqeqe")#调用func1函数
print(m)打印出函数的结果
&3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
###对象长度#######
def func1(s,li,tup):
zi = len(s)
li = len(li)
tup = len(tup)
if zi & 5:
print("shi")
print("bushi")
if li & 5:
print("shi")
print("bushi")
if tup & 5:
print("shi")
print("bushi")
return(zi,li,tup)#return返回的是字符、列表、元组的长度
m = func1("kwkwqehk",[11,22,33],(1,"215",5,6,59,6))
print(m)#m是函数体中判断产生的结果
4、写函数检测用户传入的对象(字符、列表、元组)的每一个元素是否有空内容。
def f1(o):
for i in a:
i = str(i)
return ('空格:',i)
return ('没空格')
a = ('q qer','adf')
ret = f1(a)
print(ret)
&5、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
#####列表长度判断#####
def func1(li):
len_li = len(li)
if len_li & 2:
print("列表长度大于2")
li1 = li[0:2]
return(li1)
m = func1([11,22,"ddw",4])
print(m)#相当于返回值
&6、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
def func1(li,tup):
for i in range(len(li)):
if i % 2 == 1:
l1.append(li[i])
for p in range(len(tup)):
if p % 2 ==1:
t1.append(tup[p])
return (l1,t1)
m = func1([11,22,33,55,64],(156,3,11))
7、写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表
dic = {"k1": "v1v1",
"k2": [11,22,33,44]
m = dic["k1"]
n = dic["k2"]
if len(m) & 2:
p = m[0:2]
if len(n) & 2:
q = n[0:2]
dic1["k1"] = p
dic1["k2"] = q
print(dic1)
def f5(arg):
for key,value in arg.items():
if len(value) & 2:
ret[key] = value[0:2]
ret[key] = value
return ret
dic = {"k1": "v1v1",
"k2": [11, 22, 33, 44]
r = f5(dic)
阅读(...) 评论()为啥在函数外获取元素对象为null - JavaScript当前位置:& &&&为啥在函数外获取元素对象为null为啥在函数外获取元素对象为null&&网友分享于:&&浏览:0次为什么在函数外获取元素对象为null&body&
var&p&=&document.getElementById("ppp");
alert(p);//结果为null
&p&id="ppp"&&/p&
1.为什么在函数外获取元素对象为null,在函数内获取就正常
2.事件是都属于window的吗?还是每个元素都有对应的事件。&
为什么window貌似只有一个onload事件起作用?------解决思路----------------------js获取的时候p还没创建
&&&&&p&id="ppp"&&/p&
&&&&&script&
&&&&&&&&var&p&=&document.getElementById("ppp");
&&&&&&&&alert(p);//结果为null
&&&&&/script&
这样就取得到值
HTML&DOM&-&事件
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有js判断是否为空
(1)typeof用法
typeof的运算数未定义,返回的就是 "undefined".
运算数为数字 typeof(x) = "number"
字符串 typeof(x) = "string"
布尔值 typeof(x) = "boolean"
和null&typeof(x) =
函数 typeof(x) = "function"
(2)js判断是否为空
&& typeof(exp)!="undefined"
&& exp!=0)
alert("is null");
尽管如此,我们在
应用中,一般只需要用 (!exp) 来判断就可以了,因为 DOM 应用中,可能返回 null,可能返回
undefined,如果具体判断 null 还是 undefined 会使程序过于复杂。
以下是不正确的用法:
if (exp == null)
&&& alert("is
exp 为 undefined 时,也会得到与 null 相同的结果,虽然 null 和 undefined 不一样。
&&& alert("is
如果 exp 为 undefined 或者数字零,也会得到与 null 相同的结果,虽然 null 和二者不一样。
if (typeof(exp) == "null")
&&& alert("is
为了向下兼容,exp 为 null 时,typeof 总返回 object。
if (isNull(exp))
&&& alert("is
JavaScript 中没有 isNull 这个函数。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 js传入当前对象 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信