The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Компания Apple выпустила язык программирования Swift 4.1, opennews (??), 30-Мрт-18, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


17. "Компания Apple выпустила язык программирования Swift 4.1"  +5 +/
Сообщение от angra (ok), 30-Мрт-18, 10:04 
В java вообще не выполняется подсчет ссылок, там принципиально другой сборщик мусора. Ну и задача тебе на каникулы, напиши программу, которая примет от пользователя число, а потом создаст массив с количеством объектов, равным введенному числу, а потом по очереди их из массива уберет. Помедитируй над подсчетом ссылок во время компиляции в этом случае.


Ответить | Правка | Наверх | Cообщить модератору

28. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Alexey (??), 30-Мрт-18, 10:31 
А в чем проблема? Код arc не читал, но документация утверждает что после прекращения использования объекта он зарелизится (уменьшится количество ссылок на 1), если количество сылок будет равно 0 то объект удалится. Это раньше надо было делать руками в Objective-C, с появлением arc просто пропала необходимость писать [object release].

> В java вообще не выполняется подсчет ссылок, там принципиально другой сборщик мусора.

возможно я ошибся, на java не пишу

Ответить | Правка | Наверх | Cообщить модератору

41. "Компания Apple выпустила язык программирования Swift 4.1"  +3 +/
Сообщение от Очередной аноним (?), 30-Мрт-18, 11:59 
Что-то от Ваших слов в моих слабых ограниченных мозгах просто какой-то аццкий лютый диссонанс происходит.

> в Swift подсчет ссылок выполняется на этапе компиляции

Вам указали, что в общем случае компилятор не может знать сколько объектов будет создано в процессе работы программы, которая ещё только компилируется в данный момент, ибо как минимум (компилятор) не знает, какие данные придут извне для обработки (какой будет пользовательский ввод, или что придет с файловой системы или по сети). Но Вы тут же:

> Код arc не читал, но документация утверждает что после прекращения использования
> объекта он зарелизится (уменьшится количество ссылок на 1), если количество сылок
> будет равно 0 то объект удалится.

В Вашем Swift-мирке компилятор (то самое, что компилирует исходный код) в процессе своей работы ещё и выполняет компилируемую программу? И даже входные данные для обработки тут же откуда-то получает?

Ответить | Правка | Наверх | Cообщить модератору

46. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Crazy Alex (ok), 30-Мрт-18, 12:13 
Вы путаете автоматический подсчёт ссылок (который делается в рантайме, разумеется, но не требует явных указаний со стороны программиста) с "подсчётом на этапе компиляции" что, разумеется, невозможно кроме совсем уж частных случаев или введения очень жёстких правил доступа и контроля времени жизни, как в Rust.
Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

57. "Компания Apple выпустила язык программирования Swift 4.1"  –1 +/
Сообщение от Alexey (??), 30-Мрт-18, 13:51 
абсолютно верно, я был неаккуратен в формулировках
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру