You are comparing apples and oranges (layer-2 vs. layer-3). You only use NAT if you really have no other option because of lack of IPv4 addresses, and that has nothing to do with layer-2 LAN connectivity.
Switching connects hosts at layer-2, while NAT is a kludge that is designed to extend IPv4 layer-3 addresses until IPv6 can become ubiquitous. NAT breaks the IP promise of unique addresses for every host and end-to-end connectivity.
Edit:
If I use a basic switch all 10 share a single public IP, but no
private IP.
That sentence makes no sense. There would be no sharing of the single public IP address. If you connect a switch to the public Internet where you are getting only a single public IP address, then only one device connected to the switch will get the public IP address, but the other devices will not be able to communicate on the public Internet.
Understand that switches switch layer-2 frames on a layer-2 LAN, but routers route layer-3 packets between networks (LANs). Again, you are trying to compare apples and oranges. I think you need to learn more about the network layers and what they do. Each network layer is independent of the other network layers. For example, ethernet, at layer-2 can carry any number of layer-3 protocols (IPv4, IPX, IPv6, AppleTalk, etc.), while IPv4 at layer-3 can be carried by any number of layer-2 protocols (ethernet, Wi-Fi, token ring, PPP, frame relay, ATM, etc.). The protocols at one network layer simply do not care what protocols are used at the other layers.
If you want to connect hosts at layer-2, then you use a switch, but if you need to connect networks, you use routers.