Please Explain this line for me

I am playing around with rfid and got the example code working. Now I am trying to modify it to do what I need but struggling to decipher some code.Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
From what I understand if the value of the Byte is under 0x10 a leasing zero is placed. The syntax seems to be conditional statement ? if true : if false Where can I learn more about this abbreviated if statement. Thanks.

It's called a ternary operator, and you can read all about it here

To me, the ternary operator is one of those it-seemed-like-a-good-idea-at-the-time things. I don't think there's programmer on the planet who doesn't spend a few more nano seconds reading a ternary expression than they would a good old if-else expression. In the development lifecycle, those nano seconds add up to the point where it didn't make sense to use the ternary operator. I just feel they simply don't document the code as well.

Conditional expressions are powerful, don't be shy of using them when a result is conditional.

If you want a value that's conditional, use ? : if you want a side-effect thats conditional
use if--else. Right tool for right job.

The ternary operator was important in the 1970’s ; it allows you to avoid creating unnecessary variables.

If you want a value that's conditional, use ? :

Absolutely. There are times when you want to use a conditional value in the middle of an expression. Doing this without using the ternary operator is usually possible (using a temporary variable evaluated in advance, or defining different expressions for different conditions) but that is far more cumbersome. It's not something you would expect to use very often, but there are quite reasonable situations where it is an appropriate solution.