2017-04-07 1 views
0

의 내가 이런 함수를 호출 가정 해 봅시다? 반환 유형은 무엇입니까? 뭐라구? 단위 ? ?kotlin에서 다른 반환 유형을 사용할 수 있습니까?</p> <pre><code>val call1: String = myFunction() </code></pre> <p>또는 <pre><code>val call2: Int = myFunction() </code></pre> <p></p>가 어떻게 내 함수가 호출이 아닌 함수 자체의 fonction에 반환 할 것을 결정하도록 할 수 있습니다 : 예를 들어

그것이 내가 일하고 있어요 무엇에 예 그래서 여기에 분명하면 나도 몰라 :

나는이 라인이 : 여기

var query: Query = FirebaseDatabase.getInstance().reference.child(path) 

우리가 쿼리를 얻을 것이다하지만 내가 할 경우가 이 : 나는

그래서 내가 쿼리 또는 하나를 얻기 위해 노력하고 있어요 databaseReference를 얻을 수 있습니다

var query = FirebaseDatabase.getInstance().reference.child(path) 

함수의 호출이 아니라 함수의 호출에 따라 databaseReference.

+2

databaseReference이 쿼리 - 당신은 databaseReference 당신이 첫 번째 전화에서 할 수있는 쿼리 캐스팅 할 수는 anything- 결정되지 않습니다 – X3Btel

답변

0

당신은 가짜 일종의 수 있습니다. 자바에서는이 같은 방법을 쓸 이미 실현입니다 :.

public <T> T foo(Class<T> clazz) { /* Do stuff */ } 

당신이 전달 클래스에 따라 다른 일을 반환

당신은 여전히 ​​무거운를 할 수있는 그런 일을 할 가능성이 있습니다 리프팅,하지만 당신은 그것에 인터페이스를 만들 수있는 비트 좋네요 :

interface Interface {} 
class Clazz() : Interface {} 
class Clbzz() : Interface {} 
fun <T: Interface> foo(clazz: KClass<T>) : T { /* return a T */ } 
inline fun <reified T: Interface> foo() : T { return foo(T::class) } 

val a = foo<Clazz>() 
val b : Clbzz = foo() 
관련 문제