- 1
- 2
- 3
a = nil
--или так
a = {nil}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+13
a = nil
--или так
a = {nil}
Встречал несколько раз, не понимаю зачем эдакое делать
guest 10.05.2016 18:40 # +7
3_dar 10.05.2016 19:43 # +5
guest 10.05.2016 19:51 # +1
print(a)
Назначил ему нил, но выдало нил.
bormand 10.05.2016 21:13 # +4
3_dar 10.05.2016 21:20 # 0
bormand 10.05.2016 21:22 # 0
kegdan 10.05.2016 22:13 # 0
bot 11.05.2016 21:26 # +1
guest 14.05.2016 13:13 # −3
guest 10.05.2016 22:00 # 0
guest 10.05.2016 22:01 # 0
bormand 10.05.2016 22:35 # 0
kegdan 10.05.2016 23:30 # 0
bormand 10.05.2016 23:33 # +1
kegdan 10.05.2016 23:35 # +2
ну и 0 != 0.0, но 1 == 0.999999
И прочей хуеты
guesto 11.05.2016 00:02 # +1
Когда ObjC придумывали, не было еще у геев моды на apple, да и ЯП для Apple он еще не стал
вот http://nshipster.com/nil/
nil -- указатель в нуль
NULL это от сей досталось
NSNull это объект такой (нулбожект паттерн)
А еще у нас там есть YES, NO, true, false и 0
3.14159265 11.05.2016 00:12 # +1
Им Dylan дали - пиши! Не хочу писать, хочу надстройку над сишкоблядством
guesto 11.05.2016 13:40 # 0
сейчас они все свифтят
3.14159265 11.05.2016 00:17 # 0
guesto 11.05.2016 00:46 # +1
guest 10.05.2016 22:22 # +1
guest 10.05.2016 22:40 # +4
Sfabrikan 11.05.2016 02:06 # +3
Интересно, если найдут такую строчку в исходниках, привлекут ли к ответственности?
bormand 11.05.2016 07:30 # +4
kegdan 11.05.2016 07:54 # +5
Sfabrikan 11.05.2016 09:56 # 0
print(allah) --nil
Sfabrikan 11.05.2016 10:22 # 0
guest 10.05.2016 22:54 # +4
Xyu = nil
1024-- 11.05.2016 08:26 # +2
Особенно полезно было так делать, чтобы большую переменную не засосало в замыкание вместе с остальными.
kegdan 11.05.2016 08:55 # 0
Все считают, что если у объекта есть финализатор, то он сдохнет быстрее. А объект с финализатором после смерти попадает в очередь на финализацию и живет там неопределенное время, для того, что бы запустить свой финализатор. Пустой финализатор, Карл!
А диспоз? Диспоз, вызванный в конце метода, продлевает жизнь объекту до конца метода, особенно это бредово, когда в объекте нечего диспозить. Просто - "а пошел ты нахуй, сборщик мусора, пусть объект еще поживет, и может даже попадет в следующее поколение!"
roman-kashitsyn 11.05.2016 09:13 # +2
это ведь ненадолго, верно?
kegdan 11.05.2016 09:36 # +2
GC спокойно удалил бы объект до асинхронного вызова, так как на него нет ссылок. Так придется ждать пока await вернет результат, а когда это произойдет никто не знает.
roman-kashitsyn 11.05.2016 09:58 # 0
kerman 11.05.2016 12:27 # 0
Кегги просто не разобрался, вот и хуйню пишет.
kegdan 11.05.2016 12:33 # 0
Твой ник читается иначе
kegdan 11.05.2016 12:32 # 0
kerman 11.05.2016 12:42 # −1
kegdan 11.05.2016 12:44 # +2
Я изначально говорил, что так пишут мудаки, не?
guesto 11.05.2016 09:45 # +1
каждый знает что финализации тебе не гарантируется
kegdan 11.05.2016 09:55 # 0
нет не так
ЧТООООООО?!!!!
guesto 11.05.2016 12:39 # 0
финализацяи вызовеца когда случится GC, а он может случиться никогда
или это в jvm так, а в clr иначе?
kegdan 11.05.2016 12:42 # 0
Ну так и что ты изначально хотел сказать?
guesto 11.05.2016 12:43 # +2
ну приведи мне пример зачем он нужен
ну а делать пустой финализатор "чтобы сдох быстрее" это даже не пидарство в квадрате, это факториал
kegdan 11.05.2016 12:45 # +1
"О помощи сборщику в C# - финализаторы! Блядские финализаторы!
Все считают, что если у объекта есть финализатор, то он сдохнет быстрее. А объект с финализатором после смерти попадает в очередь на финализацию и живет там неопределенное время, для того, что бы запустить свой финализатор. Пустой финализатор, Карл!
А диспоз? Диспоз, вызванный в конце метода, продлевает жизнь объекту до конца метода, особенно это бредово, когда в объекте нечего диспозить. Просто - "а пошел ты нахуй, сборщик мусора, пусть объект еще поживет, и может даже попадет в следующее поколение!""
guesto 11.05.2016 12:49 # +1
вот еще баловаться
kegdan 11.05.2016 12:50 # +1
guesto 11.05.2016 12:53 # +2
kerman 12.05.2016 21:06 # 0
А вообще говно, да. Я про финализаторы уже напрочь забыл, ибо они не нужны. Вообще не нужны. Вообще за использование финализаторов в шарпе нужно больно бить по рукам линейкой, а то и пинком под сраку назад, к крестоблядям.
bormand 12.05.2016 21:55 # +2
Ну почему... Можно сделать, чтобы они убивали прогу нахуй, если ты ресурс забыл освободить. Быстро приучит юзать using и не забывать про Dispose ;)
kegdan 12.05.2016 22:00 # 0
kerman 12.05.2016 23:20 # 0
https://msdn.microsoft.com/ru-ru/library/b1yfkh5e(v=vs.100).aspx
Но несмотря на то, что это МС, так делать низя.
Во-первых, заебёшься финализаторы писать. Которые нахуй не нужны, ага.
Во-вторых, ресурсы кончатся, а GC не будет нихуя убирать. Потому что ему похуй на ресурсы, он будет курить бамбук, пока память есть.
В следствие, и это самое страшное, на тестовой машине будут убираться ресурсы, потому что памяти мало, а GC убирается часто, а вот в продакшене с 256Гб оперативы, финалайзеры будут вызываться чуть реже, чем никогда. То есть весь спектр утекающих ресурсов доступен теперь и в шарпике!
kegdan 12.05.2016 23:48 # 0
3_14dar 15.05.2016 05:54 # 0
bormand 13.05.2016 07:30 # 0
А там разве нет костыля с вызовом гц и финалайзеров по таймеру, а не только по нехватке памяти?
kegdan 13.05.2016 07:51 # +2
Возможна даже ситуация, что у тебя ООМ намечается, из кучи выкинуть нечего, GC лезет в очередь на финализацию, пытается вызвать финализатор некоторого класса, а он ни разу не вызывался и не скомпилен, а памяти на компиляцию уже нет...
kerman 13.05.2016 10:51 # 0
kegdan 13.05.2016 11:20 # 0
Ну вообще да. Там время вызова регулируется от результатов предыдущих сборов. Гибкость
>> Или чистит только поколение 0 (свежесозданные мелкие объекты).
До того момента, пока не сожрется больше энного количества памяти, потом прихватывает первое. а второе только в преддверии ООМ
kerman 12.05.2016 23:05 # 0
kerman 11.05.2016 12:29 # 0
guesto 11.05.2016 12:39 # +1
guesto 11.05.2016 09:46 # 0
собственно он почти в любом ЯП с RC или GC есть
Steve_Brown 11.05.2016 15:15 # +2
0 == nil
1 == { nil }
2 == { nil, { nil } }
...
N == { nil } + { N-1 }
kegdan 11.05.2016 16:12 # 0
dxd 11.05.2016 17:00 # +1
TarasB 11.05.2016 17:22 # +2
roman-kashitsyn 11.05.2016 19:42 # +3
CHayT 11.05.2016 20:45 # +3
kegdan 12.05.2016 08:24 # +2
bot 11.05.2016 21:34 # +1
Sfabrikan 11.05.2016 23:14 # 0
print(a) --nil
guest 12.05.2016 23:22 # +2
TarasB 13.05.2016 16:39 # +4
guest 13.05.2016 16:43 # +6
guest 14.05.2016 13:15 # −2
OTK_Anusov 25.08.2021 19:29 # 0