Hi, Thanks for this response and I'm happy to make things clear to you.
The concept here of calling the "injector()" as you read already is called 'callable classes' and that means the GetIt class uses this method so when we create an instance of the GetIt, we can use the instance itself as callable method.. in fact the "injector()" is calling the "get()" method of the GetIt so instead of doing this
final injector = GetIt.instance;
final data = injector.get<RegisteredData>();
we can do this:
final injector = GetIt.instance;
final data = injector<RegisteredData>();
that's simply what a callable classes do.
and for the other question, you can always specify the type you wanna get like I did above.. but in case you don't specify the type, then GetIt knows the needed type according to the place you call it.
so if your function has a parameter o type "int" then GetIt will get you the registered type for you.
I hope I made everything clear to you, and you can always ask anything.
Thank You