Don't let someone swing on you. Eyeball these punks as they pass. If they ask you something, step back and guard your face.
I had one incident, a few months ago. I was out walking my dogs and coming up the cross through alley, was a hoodie. He saw me turn into the alley and stepped into the middle and stopped, with his arms crossed.
Well, instead of whatever reaction he wanted to provoke, (probably to scare me into the 1 mile around, long way) I had a Ben Hur moment and ordered ramming speed. The dogs went to battle stations, one each side.
I accelerated into a heavy, fast walk and got a vicious headbutt into my mind muscles. Then I stared at his throat and picked up a bit more speed, put a evil look on my face, etc. He stepped aside at the last second, but I sweep passed, 1/2 turned toward him, still staring at him. (You have the assume the cheap shot is coming.) I kept listening for the footsteps, checking with the dogs and not looking back.
But, I figured he had continued on. And then at the end of the alley, after I cleared, I peeked back. If he was gone, maybe I was exaggerating to myself.
Nope, he had stepped back out in the middle again and was looking at me. So, I saluted with a rude gesture.
You do not want to be clocked like that. It has killed 4 people already.
No way a gun can help you here.