如何通过Kotlin中的函数传递is运算符参数
那么,如何通过函数调用传递该字符串呢 例如: 像这样:如何通过Kotlin中的函数传递is运算符参数,kotlin,Kotlin,那么,如何通过函数调用传递该字符串呢 例如: 像这样: fun test(xxxx) { if(k is xxxx) { // do something } } inlinefun测试类型(k:Any){ if(k是T){ println(“是一个${T::class.simpleName}”) }否则{ println(“不是${T::class.simpleName}”) } } 可以这样称呼: inline fun <reified T> testT
fun test(xxxx) {
if(k is xxxx) {
// do something
}
}
inlinefun测试类型(k:Any){
if(k是T){
println(“是一个${T::class.simpleName}”)
}否则{
println(“不是${T::class.simpleName}”)
}
}
可以这样称呼:
inline fun <reified T> testType(k: Any) {
if(k is T) {
println("is a ${T::class.simpleName}")
} else {
println("is not a ${T::class.simpleName}")
}
}
test(“Hello”)//是一个字符串
test(1)//没有字符串
进一步阅读。如下:
fun test(xxxx) {
if(k is xxxx) {
// do something
}
}
inlinefun测试类型(k:Any){
if(k是T){
println(“是一个${T::class.simpleName}”)
}否则{
println(“不是${T::class.simpleName}”)
}
}
可以这样称呼:
inline fun <reified T> testType(k: Any) {
if(k is T) {
println("is a ${T::class.simpleName}")
} else {
println("is not a ${T::class.simpleName}")
}
}
test(“Hello”)//是一个字符串
test(1)//没有字符串
进一步阅读。您可以使用谓词,例如:
test<String>("Hello") // is a String
test<String>(1) // is no String
并称之为:
fun testIt(predicate: (Any?) -> Boolean) {
if (predicate(k)) {
println("matches!")
} else println("nope")
}
或者您可以使用具体化类型:
testIt { it is String }
testIt { it is Int }
inline fun testIt(){
何时(k){
是T->println(“匹配!”)
else->println(“否”)
}
}
把它叫做:
inline fun <reified T> testIt() {
when (k) {
is T -> println("matches!")
else -> println("nope")
}
}
testIt()
testIt()
为了简单起见,我将当前变量保存在testIt
-方法中。。。您可能需要重新设计;-)
我基本上假设一个成员变量如下:
var k:Any?=null
您可以使用谓词,例如:
test<String>("Hello") // is a String
test<String>(1) // is no String
testIt<String>()
testIt<Int>()
并称之为:
fun testIt(predicate: (Any?) -> Boolean) {
if (predicate(k)) {
println("matches!")
} else println("nope")
}
或者您可以使用具体化类型:
testIt { it is String }
testIt { it is Int }
inline fun testIt(){
何时(k){
是T->println(“匹配!”)
else->println(“否”)
}
}
把它叫做:
inline fun <reified T> testIt() {
when (k) {
is T -> println("matches!")
else -> println("nope")
}
}
testIt()
testIt()
为了简单起见,我将当前变量保存在testIt
-方法中。。。您可能需要重新设计;-)
我基本上假设一个成员变量如下:var k:Any?=null
内联fun isType(obj:Any):布尔值{
testIt<String>()
testIt<Int>()
返回obj为T
}
趣味主线(args:Array){
val test=“这是一个字符串”
if(isType(测试)){
println(“成功”)
}否则{
println(“失败”)
}
}
inline fun isType(obj:Any):布尔值{
返回obj为T
}
趣味主线(args:Array){
val test=“这是一个字符串”
if(isType(测试)){
println(“成功”)
}否则{
println(“失败”)
}
}
根据您的需要,有两种可能性
1.使用内联
和具体化
类型参数
您可以将type参数上的具体化
关键字与内联
函数结合使用:
inline fun <reified T> isType(obj: Any): Boolean {
return obj is T
}
fun main(args: Array<String>) {
val test = "This is a String"
if (isType<String>(test)) {
println("Success")
} else {
println("Failure")
}
}
根据您的需要,有两种可能性 1.使用
内联
和具体化
类型参数
您可以将type参数上的具体化
关键字与内联
函数结合使用:
inline fun <reified T> isType(obj: Any): Boolean {
return obj is T
}
fun main(args: Array<String>) {
val test = "This is a String"
if (isType<String>(test)) {
println("Success")
} else {
println("Failure")
}
}