如何为kotlin中的函数参数设置不为null
我在Kotlin
创建了一个函数。 它validation电子邮件和密码字段。 我想申请电子邮件和密码不应该为空。 @NotNull
有点注释在这里。
有没有人知道如何在Kotlin
做到这一点? 所以调用者不能发送空值。
private fun isEmailAndPasswordValid(email: String, password: String): Boolean { if (email.isEmpty()) return false if (!Patterns.EMAIL_ADDRESS.matcher(email).matches()) return false if (password.isEmpty()) return false return true }
Kotlin将所有types区分为可为空和不可空的 。 例如,类String
可以用于String
types,不能为空,typesString?
,它是可以为空的,即可以为null
。
在你的例子中,不使用可为空的types,所以你都很好 – 不需要额外的注释。
应该研究文件的进一步信息。
Kotlin具有内置的安全性。 String
是一个非空types,而String?
是可以空的types。 所以, isEmailAndPasswordValid(email: String, password: String)
将强制传递给它的值是非空的。
Kotlin语言在默认情况下是无效的,所以当创建一个新的variables时,它不能为null,但是当你想要一个可为null的variables时,你可以添加感叹号来指定它可以为null,例如String ?, Int? …
不可空
var a: String = "bachiri" a = null // compilation error
可空types
var a: String? = "bachiri" a = null // OK
如果你想调用可空types的函数,你应该使用更大的空值variables(1)或使用安全调用(2)
当我检查Kotlin文档时,我可以看到一个Stringvariables不能被设置为null,除非你声明它是可以的,并且你的编译器会产生一个错误。
例如,一个Stringtypes的正则variables不能为空