Hi,
--> my_struct.func(my_struct)
is the only way. This is not possible to it the way you would like, it
would need real object-oriented features which Scilab does not have.
At least, we could mimic this if field extraction could be overloaded.
S.
Le 01/07/2020 à 05:44, Chin Luh Tan a écrit :
Hi,
I am wondering if this is possible:
I've a structure with data and function pointer, for example:
mystruct.data = 5;
mystruct.func =%myfun
calling mystruct.func() will call myfun with the input of mystruct.data.
To put it in example, this is what I tried:
// define an inline function
--> deff('x = myfunc(y)', 'x = y.data + 1')
// create my_struct with field 'data' = 2
--> my_struct.data = 2
my_struct =
data = 2
// try to call myfunc with the my_struct -->o k
--> myfunc(my_struct)
ans =
3.
// Define a "pointer" to myfunc
--> %ptr = myfunc
%ptr =
[x]=%ptr(y)
// Try to use %ptr to call the function --> ok
--> %ptr(my_struct)
ans =
3.
// assign %ptr to my_struct.func
--> my_struct.func = %ptr
my_struct =
data = 2
func: myfunc(y) => [x] (3 lines)
// I still can call the function with this, but it looks redundant as
"my_struct" appear twice..
--> my_struct.func(my_struct)
ans =
3.
// How to I modified the codes so that calling below line will
automatically find the my_struct.data?
--> my_struct.func()
at line 2 of function myfunc
Undefined variable: y
Thanks for advice.
Regards,
Chin Luh
_______________________________________________
users mailing list
users@lists.scilab.org
https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users
--
Stéphane Mottelet
Ingénieur de recherche
EA 4297 Transformations Intégrées de la Matière Renouvelable
Département Génie des Procédés Industriels
Sorbonne Universités - Université de Technologie de Compiègne
CS 60319, 60203 Compiègne cedex
Tel : +33(0)344234688
http://www.utc.fr/~mottelet
_______________________________________________
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users