spflanze
(Stephen Pflanze)
1
Does Swift have an equivalent of the C, and C++, function sprint() which directs its output to a string variable instead of the terminal?
You can use string interpolation for this: Documentation
2 Likes
You can use the to: parameter on print:
var s = ""
print("foo", to: &s)
3 Likes
And if you want the exact replacement to sprintf, here comes String.init(format:_:):
import Foundation
let str = String(format: "%u, %f\n", 1_000_000, 3.1415) // "1000000, 3.141500\n"
3 Likes
AlexanderM
(Alexander Momchilov)
5
Though caution: never use String.init(format:_:) for formatting values for users. Any one hard-coded format for numbers, currencies, dates, etc. is going to be wrong for the majority of people in the world.
Use NumberFormatter, DateFormatter, etc. for those.
6 Likes
young
(rtSwift)
6
Should use the new Foundation FormatStyle: FormatStyle | Apple Developer Documentation
3 Likes