|
45 / 0 / 0
Регистрация: 10.04.2016
Сообщений: 114
|
|
Строки: массив литералов или тип "string"?23.11.2018, 21:41. Показов 3939. Ответов 25
Всем мира!
Возник у нас с товарищем принципиальный вопрос. Суть такая: я ему говорю, что строка - это массив символьных значений. Он говорит, что строка - это строка, т.е. просто "нечто", заключенное в скобки. Я прогаю на С++, он - на js. В С - это массив. Думаю, что в js тоже. Рассудите нас, прошу)
0
|
|
| 23.11.2018, 21:41 | |
|
Ответы с готовыми решениями:
25
Как преобразовать тип System::String ^ в string? (или что можно сделать ещё для работы перегруженного оператора ostream::operator<<)
|
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
||||||
| 23.11.2018, 22:20 | ||||||
Сообщение было отмечено Руслан92 как решение
Решение
Руслан92, большинство сред исполнения JS написаны на плюсах.
И для них строка это массив 16битных беззнаковых целых с максимальной длиной (2^53)-1. Почитать можно в документации - https://www.ecma-international... tring-type Даже одно то, что к строке можно обратиться как к массиву, должно было натолкнуть на мысль.
1
|
||||||
|
45 / 0 / 0
Регистрация: 10.04.2016
Сообщений: 114
|
|
| 23.11.2018, 22:23 [ТС] | |
|
благодарю, рассудили!
0
|
|
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
|
| 23.11.2018, 22:24 | |
|
Руслан92, не за что, легкого компила
0
|
|
|
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
|
| 24.11.2018, 08:25 | |
|
Руслан92, товарищ прав.
В последний раз строка в JS была грубо говоря непрерывным массивом символов в IE7 насколько помню. После этого в современных браузерах строка превратилась во внутреннем представлении в некий StringBuilder, позволяющий не создавать новый массив символов после конкатинации строки с другой строкой. И с тех пор идут обсуждения, надо ли вообще в JS вводить штатный тип StringBuilder, если приращение строки само по себе уже оптимизировано. То есть именно язык JS не раскрывает внутреннюю сущность строки. Теоретически каждый JS-движок может хранить строку в различных представлениях. Добавлено через 5 минут А извне можно обратиться к каждому элементу строки по индексу в строке. И строка имеет свойство length. То есть внешне ведет себя как массив якобы непрерывно расположенных символов.
0
|
|
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
||
| 24.11.2018, 11:59 | ||
|
amr-now, опять фантазируете
https://chromium.googlesource.... builder.cc , https://chromium.googlesource.... ring-inl.h Если уж документацию Вы упорно отказываетесь читать, может код Вам понятнее будет. Добавлено через 5 минут Исходники Mozilla - https://dxr.mozilla.org/mozill... String.cpp https://dxr.mozilla.org/mozill... String.cpp И там, и там работа с векторами Исходники сафари (webkit), та же фигня- https://trac.webkit.org/browse... rev=138530 https://trac.webkit.org/browse... rev=138530
0
|
||
|
the hardway first
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
|
||
| 24.11.2018, 13:41 | ||
|
2
|
||
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
|||
| 24.11.2018, 14:14 | |||
|
j2FunOnly,
Но при реализации этого типа в движке, сделать это
0
|
|||
|
1 / 1 / 0
Регистрация: 24.11.2018
Сообщений: 6
|
|
| 24.11.2018, 14:19 | |
|
мне кажется это, все таки, строка
0
|
|
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
||||||
| 24.11.2018, 14:31 | ||||||
|
Да ребят, ну как хотите, так и думайте
Каждый волен на это и это прекрасно ![]() Я привел документацию и исходники к своим словам. Сделать сущность иммутабельной не составляет труда. Что-то типа
0
|
||||||
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
|
| 24.11.2018, 16:18 | |
|
Руслан92, в js строка -- это массивоподобный объект, принципиально отличающийся от массива тем, что его нельзя изменить
0
|
|
|
|
||||||
| 24.11.2018, 23:44 | ||||||
|
1
|
||||||
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
|||
| 25.11.2018, 00:54 | |||
0
|
|||
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
|
| 25.11.2018, 01:07 | |
|
diadiavova, здравствуй
![]() Все доводы, что я приводил, сделаны на основе того, что написано в документации и в сорцах. Да, в JS строка - это примитивный тип String блаблабла. Но под капотом, в тех средах исполнения, чьи источники я приложил, они обрабатываются как массивы. Ибо в плюсах строка, ВНИМАНИЕ - это массив. Согласно ECMAScript - стандарт, на основе которого реализован JS, строка должна быть последовательностью 16UInt. Пруфы дал выше. Про другие среды исполнения, в которых интерпретатор реализован на другом языке, пока к сожалению у меня нет информации. Ну вот, опять моя мебель тлеет. ![]() Всё, даю себе зарок, больше не отвечать на в темах, подобной этой. Опять спор бессмысленный.
1
|
|
|
|
||||||||
| 25.11.2018, 01:49 | ||||||||
|
Не по теме: Могу отослать к изумрудным скрижалям Гермеса Трисмегиста, они вообще утверждают, что все в мире подобно всему. "qwerty"[2] возворащает именно енто самое или все-таки тоже объект String?
3
|
||||||||
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
||
| 25.11.2018, 02:15 | ||
|
Не по теме: diadiavova, вектор в С++ - если по простому это динамический массив. А если следовать документации, то это контейнер, инкапсулирующий в себе динамические массивы. https://en.cppreference.com/w/cpp/container/vector https://en.cppreference.com/w/cpp/header/vector И да, повторюсь, в плюсах строка - это массив. Короче, не придирайся ![]() ![]() Не по теме: Не буду снова начинать нудить, ты и так знаешь, что я не согласен с тобой. Я в свою очередь знаю, что это взаимно ![]() Не по теме: Оставим так. Я постараюсь больше не писать в такие темы, потому что возникающий спор между нами вводит в ступор новичков. Глупо. У меня корона с головы не упадет - уступить ![]() Не по теме:
1
|
||
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
||||
| 25.11.2018, 02:36 | ||||
|
в документации по языку JavaScript (ссылку https://developer.mozilla.org/... escription я вам дал) написано, что строка -- это "единственный родной массивоподобный объект", но вы продолжаете настаивать, что это "спорный вопрос" ![]() ваши рассуждения один в один сходны с рассуждениями дамы из бородатого анекдота: Не по теме:
0
|
||||
|
|
||||
| 25.11.2018, 02:48 | ||||
|
ПС И да, я в курсе, что ты ко мне на "ты" не обращался. ))
2
|
||||
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
||||
| 25.11.2018, 04:23 | ||||
|
или полагаете, что "умствовать" здесь дозволено только вам?
0
|
||||
|
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
|
| 25.11.2018, 09:13 | |
|
Моя точка зрения совпадает с точкой зрения diadiavova.
Непрерывная последовательность символов в строке JS может быть частным случаем размещения в памяти, но не единственным. Надо искать не только в спецификации. но и в разнообразных разрозненных статьях товарищей, причастных к разработке языка. Периодически помелькивают, но сейчас не помню точные ссылки.
1
|
|
| 25.11.2018, 09:13 | |
|
Помогаю со студенческими работами здесь
20
Можно ли тип Collection<String> преобразовать в тип ArrayList<String>?
Ввод строки литералов, вывод измененной строки, в зависимости от буквы Строки в стиле С. Тип string
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|