如何通过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")
    }
}