博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实践:不同编程语言, 函数检测多属性的全部合理的具体实现。
阅读量:5976 次
发布时间:2019-06-20

本文共 1846 字,大约阅读时间需要 6 分钟。

以java和erlang为例:

①、java:面向对象 且 存在return。

②、erlang: 函数性编程  不存在return

 

%% 模拟检测 多个输入信息是否合理,只要有一个不合理,则返回。
%% 举例:UName,UEmail,UPass,USex,UMoney,UOwn.
%% 以上述描述的顺序为检测的优先级,检测函数: 以check为前缀 加 要检测的属性名字。

 

%% java:存在return,直接使用return。

%% 方法一:

regist(UName,UEmail,UPass,USex,UMoney,UOwn){    if(!checkName(UName))    {        return ;    }    if(!checkEmail(UEmail))    {        return ;    }    if(!checkPass(UPass))    {        return ;    }    if(!checkSex(USex))    {        return ;    }    if(!checkMoney(UMoney))    {        return ;    }    if(!checkOwn(UOwn))    {        return ;    }}

 

%% 在erlang中不存在return:
%% 方法二、

regist(UName,UEmail,UPass,USex,UMoney,UOwn)->	case checkName(UName)	of 		ok->						case				checkEmail(UEmail)			of 				ok->					case checkPass(UPass)					of										ok->						case checkSex(USex)						of						ok->							case 							of								ok->									case checkMoney(UMoney)									of										ok->												case 												checkOwn(UOwn)											of												ok->														ok;												error-> 													error 											end										;										error-> error									end								;								error-> 									error							end						;						error-> error						end					;					error->error 					end				;			error->				error			end			;		error->error	end.

 

    
%% 方案三、

regist(UName,UEmail,UPass,USex,UMoney,UOwn)->    NameResult = checkName(UName),%% 返回值:0,1    EmailResult =checkEmail(UEmail,NameResult),    PassResult = checkPass(UPass,EmailResult),    SexResult = checkSex(USex,PassResult),    MoneyResult = checkMoney(UMoney,SexResult),    checkOwn(UOwn,MoneyResult).    %% 通过名字验证后才能进行邮箱验证,否则直接放回名字验证的结果。checkEmail(UEmail,1)->    Result;checkEmail(UEmail,NameResult)->    NameResult;

 

    
%% 猜测:方案三可能比方案二慢.
%% 确定: 方案三的可读性远远超过于方案二.
%% 缺陷:方案三的函数 比 方案二的增加了参数。
%% 实践:需要检测方案二 和 方案三 的 可行性 和 效率

转载于:https://www.cnblogs.com/ribavnu/p/3731795.html

你可能感兴趣的文章
治病記錄
查看>>
AJAX实用教程——获取博客园博文列表
查看>>
嵌入式开发之davinci--- 8168 电源调试总结
查看>>
grunt学习笔记
查看>>
matlab 学习之常用函数2
查看>>
Properties vs. Attributes
查看>>
sql推断时间
查看>>
Android Studio安装Genymotion插件
查看>>
309. Best Time to Buy and Sell Stock with Cooldown
查看>>
自我总结(七)
查看>>
[python网络编程]DNSserver
查看>>
Angular+Flask搭建一个记录工具
查看>>
oracle中避免sort操作
查看>>
打造持续学习型组织
查看>>
如何平衡工作与家庭
查看>>
分布式调用技术 RPC VS REST
查看>>
【Unity】Protobuf的使用与常见问题
查看>>
批量修改mp3文件的title等
查看>>
Sense编辑器(Sense Editor)
查看>>
JSTL解析——001
查看>>