I have done quite a few martial arts. Anyone who tells you you can learn X and fight against someone who is armed (knife or gun) is simply spouting B.S.
If someone pulls out a gun on you, give that person what he wants and pray you are not going to end up shot anyway.
If someone pulls out a knife on you, again, don't try to be a hero: give that person what he wants. Don't play hero, especially if the guy holding the knife seems to know what he is doing.
Martial arts are just a way to train your body and your mind, both trainings are valuable in and out of themselves. They will keep you calm in a tense situation, they may even save your life since no one wants to mess with a dude that keeps his cool. Ultimately, a street fight can be avoided just by looking calm and composed.
Pornitor! For all your... ... ... ... "Viewing" needs.