Swift struct custom deinit

could you, please, tell why The Swift standard library and Foundation use structures(and not classes) for types such as numbers, strings, arrays, and dictionaries?
Is it because of performance difference between struct and class?