Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种方法可以实现Swift';Kotlin中的s协议组成_Swift_Kotlin_Interface_Protocols_Swift Protocols - Fatal编程技术网

有没有一种方法可以实现Swift';Kotlin中的s协议组成

有没有一种方法可以实现Swift';Kotlin中的s协议组成,swift,kotlin,interface,protocols,swift-protocols,Swift,Kotlin,Interface,Protocols,Swift Protocols,因此,对于Swift,我们可以创建新类型,或者使用&操作符作为参数传递给方法 Swift代码示例: protocol Fooable {} protocol Barable {} // the new protocol typealias FooBarable = Fooable & Barable // method parameter func doSomethingFor(object: Fooable & Barable) { ... } 在Kotlin的接口中是

因此,对于Swift,我们可以创建新类型,或者使用
&
操作符作为参数传递给方法

Swift代码示例:

protocol Fooable {}
protocol Barable {}

// the new protocol
typealias FooBarable = Fooable & Barable

// method parameter 
func doSomethingFor(object: Fooable & Barable) { ... }
在Kotlin的接口中是否有这样做的方法


从功能方面,您可以使用以下通用功能处理它:

fun-foo(obj:T)其中T:Fooable,T:Barable{
...
}

请检查以下代码:

interface A{

}

interface B{

}

fun <T> check(variable: T) where T : A, T: B{
    print("Hello");
}
接口A{
}
接口B{
}
有趣的检查(变量:T),其中T:A,T:B{
打印(“你好”);
}
如果您试图传递一个变量,但该变量不能同时确认这两个变量,则上面给出的编译时错误

interface A{

}

interface B{

}

fun <T> check(variable: T) where T : A, T: B{
    print("Hello");
}