Size: a a a

2018 June 29

А

Александр in Kotlin Moscow
Просто сегодня встретил код с ===, пошёл к автору, что за херню ты пишешь. Он сказал все работает иди на х. Крыть нечем аргумент.
источник

NN

Nikolay Nesterov in Kotlin Moscow
KISS
источник

А

Александр in Kotlin Moscow
Но для меня не понятно
источник

NN

Nikolay Nesterov in Kotlin Moscow
А автор знает про java.lang.Integer.IntegerCache.high? Иначе можно налететь :)
источник

NN

Nikolay Nesterov in Kotlin Moscow
Но, как я и говорил, я не вижу ни одной причины использовать в продакшене === вместо == для примитивов
источник

MZ

Maxim Zinchenko in Kotlin Moscow
Nikolay Nesterov
Если бы в джаве была "передача по ссылке", то можно было бы написать функцию void swap(Object first, Object second) { ... } Но, увы :)
насколько я знаю, такое ни в каком языке не называют передачей по ссылке. во всяком случае by reference означает точно не это. это больше похоже на in out или out. такое редко в каких языках делают, так как такой дизайн обычно приводит к жуткому говнокоду
источник

А

Александр in Kotlin Moscow
Nikolay Nesterov
А автор знает про java.lang.Integer.IntegerCache.high? Иначе можно налететь :)
Я не стал выяснять после таких аргументов
источник

А

Александр in Kotlin Moscow
Nikolay Nesterov
Если бы в джаве была "передача по ссылке", то можно было бы написать функцию void swap(Object first, Object second) { ... } Но, увы :)
Ты просто ссылаешься на не изменяемые объекты
источник

NN

Nikolay Nesterov in Kotlin Moscow
Maxim Zinchenko
насколько я знаю, такое ни в каком языке не называют передачей по ссылке. во всяком случае by reference означает точно не это. это больше похоже на in out или out. такое редко в каких языках делают, так как такой дизайн обычно приводит к жуткому говнокоду
Ну, такое точно есть в C++. Есть и в C# (`out` и `ref`).
источник

А

Александр in Kotlin Moscow
И ты не меняешь сами ссылки
источник

MZ

Maxim Zinchenko in Kotlin Moscow
Nikolay Nesterov
Но, как я и говорил, я не вижу ни одной причины использовать в продакшене === вместо == для примитивов
это смотря какой продакшен :) некоторые люди на JPoint рассказывают ещё и не такое. например, как отключить GC в JVM вообще и при этом замечательно продолжать жить
источник

NN

Nikolay Nesterov in Kotlin Moscow
Ну это такие, проекты-единороги
источник

MZ

Maxim Zinchenko in Kotlin Moscow
Nikolay Nesterov
Ну, такое точно есть в C++. Есть и в C# (`out` и `ref`).
то что оно есть, я не спорю. я говорю, что это не называется by reference. ну и на мой взгляд это вредная фича
источник

А

Александр in Kotlin Moscow
В с++ к примеру свап с помощью объединений возможен только из-за того что ты по адресу можешь изменить сам объект
источник

А

Александр in Kotlin Moscow
По этому пример некорректен на мой взгляд
источник

NN

Nikolay Nesterov in Kotlin Moscow
> The ref keyword indicates a value that is passed by reference
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/ref
источник

NN

Nikolay Nesterov in Kotlin Moscow
вот это я называю "передаче по ссылке"
источник

NN

Nikolay Nesterov in Kotlin Moscow
в с# можно написать  public static void Swap<T> (ref T lhs, ref T rhs) { .. }
источник

NN

Nikolay Nesterov in Kotlin Moscow
ВСе потому, что в c# *есть* передача аргумента по ссылке, а в java (и в котлине) такой возможности *нет*
источник

NN

Nikolay Nesterov in Kotlin Moscow
> Do not confuse the concept of passing by reference with the concept of reference types. The two concepts are not the same.

Но ладно, сорри за флуд 🙂
источник