Вы можете сделать это с помощью String
, потому что так получилось, что String
имеет инициализатор:
public init<S>(_ other: S) where S : LosslessStringConvertible, S : Sequence, S.Element == Character
String
соответствует всем ограничениям S
, поэтому его можно передатьк этому инициализатору, и вы можете создать строку таким образом.
Set
- это совершенно другой класс, и у него нет никакого инициализатора, которому вы можете передать 2 String
с, поэтомувы не можете создать набор, передав 2 строки.
Если вы хотите создать набор с 2 строками в качестве элементов, вы можете использовать литерал массива:
let set: Set<String> = ["asdasd","sadad"]
В качестве альтернативы,если вы хотите вызвать инициализатор явно,
let set = Set<String>(["asdasd","sadad"])