実践:異なるプログラミング言語、関数検出多属性のすべての合理的な具体的な実現.
2241 ワード
Javaとerlangを例に挙げると、
①、java:オブジェクト向けでreturnが存在します.
②、erlang:関数プログラミングにreturnは存在しない
%%シミュレーションは、複数の入力情報が妥当かどうかを検出し、1つの不合理がある場合は返します.%例:UName,UEmail,UPass,USex,UMoney,UOwn.%%上記の説明の順序を検出の優先度とし、検出関数:checkを接頭辞として検出する属性名を付ける.
%%java:returnが存在し、returnを直接使用します.%%方法1:
%%はerlangにreturnが存在しません:%メソッド2、
%シナリオ3、
%推測:シナリオ3はシナリオ2より遅い可能性があります.%決定:シナリオ3の可読性はシナリオ2.%をはるかに上回っています.欠陥:シナリオ3の関数はシナリオ2のパラメータより増加した.%%実践:方案二と方案三の実行可能性と効率を検査する必要がある.
①、java:オブジェクト向けでreturnが存在します.
②、erlang:関数プログラミングにreturnは存在しない
%%シミュレーションは、複数の入力情報が妥当かどうかを検出し、1つの不合理がある場合は返します.%例:UName,UEmail,UPass,USex,UMoney,UOwn.%%上記の説明の順序を検出の優先度とし、検出関数:checkを接頭辞として検出する属性名を付ける.
%%java:returnが存在し、returnを直接使用します.%%方法1:
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が存在しません:%メソッド2、
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
.
%シナリオ3、
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;
%推測:シナリオ3はシナリオ2より遅い可能性があります.%決定:シナリオ3の可読性はシナリオ2.%をはるかに上回っています.欠陥:シナリオ3の関数はシナリオ2のパラメータより増加した.%%実践:方案二と方案三の実行可能性と効率を検査する必要がある.