Estoy trabajando en esto que tiene algunas llamadas a funciones como esta:
fun f1(){ // does some stuff f2(); } fun f2(){ // does some stuff f1(); }Esta es una simplificación de cómo se ve mi código (no va por un bucle infinito). Mi problema es que devuelve el error de que f2 no está referenciado. Intenté buscar esto en línea, pero las únicas soluciones que vi de personas que preguntaban dónde mover la función encima de la llamada de función, pero eso no funcionaría para mí ya que mi otra función también llama a esa y mover el f2 sobre f1 solo haría f1 sin resolver cuando se llama a f1 desde f2.
También probé la declaración de función que tienen c y c++, pero me dio errores diciendo que tengo definiciones de función ambiguas y que esperan un cuerpo de función en la declaración de función.
Gracias.
Supongo que está tratando de definir ambas funciones dentro del mismo ámbito local y está obteniendo un error del compilador Kotlin de "Referencia no resuelta".
Si ese es su caso y no puede refactorizar su flujo de una mejor manera, entonces puede declarar una de las funciones como una variable anulable y asignarla más tarde. Su código se convertiría entonces
var f2: (() -> Unit)? = null fun f1() { // does some stuff // Option 1: wont get invoked if f2 is null when this line is executed f2?.invoke() // Option 2: will always try to get invoked, but if f2 is null when this line is executed, // it will throw a NullPointerException f2!!.invoke() } f2 = { // does some stuff f1() }