Can someone help me better understand the motivations behind using single quotes vs. reusing double quotes?
A pain point of using characters in Swift is they lack a first-class literal syntax. Users have to manually coerce string literals to a
Character
orUnicode.Scalar
type usingas Character
oras Unicode.Scalar
, respectively.
Couldn't the same be said about Set
and ArrayLiteralConvertible
? Given that Character
can be inferred as a string literal, this pain point also feels overstated.
Having the collection share the same syntax as its element also harms code clarity and makes it difficult to tell if a double-quoted literal is being used as a string or character in some cases.
Clarity in knowing what a literal is feels like an issue of literal syntax in general, regardless of collection/element differences. And by distinguishing a collection literal from its element, does this proposal also suggest that any collection of character literal elements be expressible as a string literal?
Character types also don't support string literal interpolation, which is another reason to move away from double quotes.
This doesn't seem like a strong motivator. The compiler already bans this, no?
I guess what I'm looking for is why reusing double quotes wasn't even mentioned in "alternatives considered." Seems like a big omission?