Я просматривал документы и нашел StaticString
. В нем указано:
Простая строка, предназначенная для представления текста, "знающего во время компиляции".
Первоначально я думал, что String
имеет такое же поведение, как NSString
, которое известно во время компиляции, но похоже, что я ошибался. Поэтому мой вопрос заключается в том, когда следует использовать StaticString
вместо String
, и разве только, что StaticString
известно во время компиляции?
Одна вещь, которую я нашел, -
var a: String = "asdf" //"asdf"
var b: StaticString = "adsf" //{(Opaque Value), (Opaque Value), (Opaque Value)}
sizeofValue(a) //24
sizeofValue(b) //17
Итак, похоже, что StaticString
имеет немного меньший объем памяти.