Size: a a a

2018 June 29

MZ

Maxim Zinchenko in Kotlin Moscow
да, лоханулся. когда речь про mutable тогда передача по ссылке действительно автоматом означает возможность изменений объекта. я имел в виду такую передачу параметра, которая может изменить саму ссылку
источник

MZ

Maxim Zinchenko in Kotlin Moscow
мда, согласен. передача ссылки (int*) и передача по ссылке(int&), это разные вещи.
источник

А

Александр in Kotlin Moscow
По моему какой язык не возьми по значению значит копию объекта а по ссылке сам объект. Но может я что-то путаю
источник

MZ

Maxim Zinchenko in Kotlin Moscow
это вопрос того, что такое "сам объект". в java разница между объектом и ссылкой весьма условна.
источник

NN

Nikolay Nesterov in Kotlin Moscow
В джаве вот как раз ссылочные типы данных никак нельзя скопировать.
источник

А

Александр in Kotlin Moscow
Maxim Zinchenko
мда, согласен. передача ссылки (int*) и передача по ссылке(int&), это разные вещи.
По сути только то что ты переменную &Int не можешь переназначить
источник

А

Александр in Kotlin Moscow
Nikolay Nesterov
В джаве вот как раз ссылочные типы данных никак нельзя скопировать.
Но примитивы то копируются
источник

NN

Nikolay Nesterov in Kotlin Moscow
Александр
По сути только то что ты переменную &Int не можешь переназначить
Позвольте, почему не можешь переназначить? https://code.sololearn.com/c39N9RN6b4Md
источник

А

Александр in Kotlin Moscow
Nikolay Nesterov
Позвольте, почему не можешь переназначить? https://code.sololearn.com/c39N9RN6b4Md
Не так выразился. Сослать на другой объект
источник

А

Александр in Kotlin Moscow
Обращаешься к ней без значка указателя
источник

А

Александр in Kotlin Moscow
И значения в области памяти можешь менять
источник

А

Александр in Kotlin Moscow
Но сослать ее на другую область памяти как в случае с *int нет
источник

NN

Nikolay Nesterov in Kotlin Moscow
Ладно, этот разговор точно не для чатика по котлину 🙂
источник

А

Александр in Kotlin Moscow
согласен
источник

А

Александр in Kotlin Moscow
Maxim Zinchenko
в данном случае, это единственный правильный ответ, так как
("500".toInt() as Int?) === 500 - это false
"500".toInt() === 500 - это true
в приведенном примере используется кейз 1, так что тут имеет значение только имплементация JVM
Самое интересное что это print((("500".toInt() as Int?) === 500))->false, а это print((("5".toInt() as Int?) === 5)) true. Простите меня я немного задрот.
источник

NN

Nikolay Nesterov in Kotlin Moscow
можно почитать про java.lang.Integer.IntegerCache.high и кеш Integer в jvm
источник

NN

Nikolay Nesterov in Kotlin Moscow
в некоторых конторах любят такое на собесах задавать
источник

А

Александр in Kotlin Moscow
спасибо гляну
источник

MZ

Maxim Zinchenko in Kotlin Moscow
Александр
Самое интересное что это print((("500".toInt() as Int?) === 500))->false, а это print((("5".toInt() as Int?) === 5)) true. Простите меня я немного задрот.
ну это-то как раз ожиданно. для 5 и Int, и Int? будут работать одинаково, поэтому на нём смотреть не интересно
источник

А

Александр in Kotlin Moscow
я уже читаю про кеш
источник