程序中调用命令行和调用相同功能的api有什么区别?

描述:
最近看go程序,看到这么一个问题,明明可以调用api去完成的事,非要先将该接口编译成一个可执行程序,然后再在程序中去调用这个可执行程序。

问题:在程序中直接调用api和直接调用相同功能的命令行有什么区别,哪个效率更好?

调用api理论上效率更高。调用命令行,那么可以不修改主程序,通过修改命令本身修改功能,灵活性好。