github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/gnovm/tests/files/struct33.gno (about)

     1  package main
     2  
     3  type T0 struct {
     4  	name string
     5  }
     6  
     7  type lookupFunc func(s string) T0
     8  
     9  type T1 struct {
    10  	name string
    11  	info lookupFunc
    12  }
    13  
    14  func (t T0) F1() bool { println("in F1"); return true }
    15  
    16  var t0 = T0{"t0"}
    17  
    18  func look(s string) T0 { println("in look"); return t0 }
    19  
    20  var table = []*T1{
    21  	{
    22  		name: "bar",
    23  		info: look,
    24  	},
    25  }
    26  
    27  func main() {
    28  	info := table[0].info
    29  	println(info("foo").F1())
    30  }
    31  
    32  // Output:
    33  // in look
    34  // in F1
    35  // true