I can't understand the advantage of function selector. Following link What is a function selctor?
uses function selector to invoke a function of another contract but it uses the statements:
bytes4 selector = contract1.func.selector;
bytes memory data = abi.encodeWithSelector(selector, uint256(789), uint8(123));
This means for the function selector we must know both the function name and the arguments of the function which we want to invoke.
Now consider another linkerror-member-func-not-found-or-not-visible-after-argument-dependent-lookup-in
It also calls the function 'func' of contract1 without using the function selector. But it also uses name of the function and the argument list.
(uint32 arg1, uint32 arg2) = contract1.func(uint256(789), uint8(123));
So in both the cases with or without function selector, we must know the function name and the argumnet list. So what is the advantage of using function selector?