gpt4 book ai didi

android - 这些 ifs 语句会降低性能吗?

转载 作者:行者123 更新时间:2023-11-29 18:31:51 25 4
gpt4 key购买 nike

因此,我正在使用架构模块化我的应用程序,现在,在我看来,我得到了 fullNamepassword 1 (pw1)password2 ( pw2)电子邮件

我有一个调用 signUp() 方法的按钮操作

注册

override fun signUp() {
val fullName:String = etxt_name.text.trim().toString()
val email:String = etxt_email.text.trim().toString()
val pw1:String = etxt_pw1.text.trim().toString()
val pw2:String = etxt_pw2.text.trim().toString()

if(presenter.isEmailValid(email)){

if(presenter.passwordsMatch(pw1,pw2)){

if(presenter.isPasswordEmpty(pw1,pw2)){

etxt_pw1.setError("Empty field")
etxt_pw2.setError("Empty field")
return

}else{
if(presenter.isNameEmpty(fullName)){

etxt_name.setError("Empty name")
return

}else{
presenter.signUp(fullName,email,pw1)
}

}

}else{
etxt_pw1.setError("Passwords does not match")
etxt_pw2.setError("Passwords does not match")
return
}

}else{

etxt_email.setError("Invalid E-mail")
return
}

}

这会调用我的Presenter 中的方法来验证每个字段

主持人

   override fun passwordsMatch(pw1: String, pw2: String): Boolean {
return pw1.equals(pw2)
}

override fun isEmailValid(email: String): Boolean {
return Pattern.matches(
"(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])",
email)
}

override fun isPasswordEmpty(pw1: String, pw2: String): Boolean {
return !(pw1.isEmpty() || pw2.isEmpty())
}

override fun isNameEmpty(fullName: String): Boolean {
return fullName.isEmpty()
}

我的问题

我是这样的,我正在以正确的方式实现它?还是我应该让它变得更好?如果是这样,任何提示都会受到赞赏,另外,那些 if 语句会降低注册方法中的性能吗?

谢谢

最佳答案

您的方法很好,但可以修改以更容易被其他人理解。例如,函数 signUp() 可以像这样重新创建:

override fun signUp() {
val fullName:String = etxt_name.text.trim().toString()
val email:String = etxt_email.text.trim().toString()
val pw1:String = etxt_pw1.text.trim().toString()
val pw2:String = etxt_pw2.text.trim().toString()

if (!presenter.isEmailValid(email)) {
etxt_email.setError("Invalid E-mail")
return
}

if (!presenter.passwordsMatch(pw1,pw2)) {
etxt_pw1.setError("Passwords does not match")
etxt_pw2.setError("Passwords does not match")
return
}

if (presenter.isPasswordEmpty(pw1,pw2)) {
etxt_pw1.setError("Empty field")
etxt_pw2.setError("Empty field")
return
}

if (presenter.isNameEmpty(fullName)) {
etxt_name.setError("Empty name")
return
}

presenter.signUp(fullName, email, pw1)
}

据我所知,if 语句不会降低性能,这是创建验证器的常用方法。至于你的其他文件,它似乎是正确的。我希望这可以帮助你:)

关于android - 这些 ifs 语句会降低性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55841113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com