![]() 0 / 0 / 0
Регистрация: 17.04.2020
Сообщений: 47
|
||||||
1 | ||||||
Как передать в функцию аргумент по ссылке?29.09.2020, 20:47. Показов 3288. Ответов 10
Метки нет Все метки)
(
Как привести этот код в адекватный вид?
Как передать значения ф-ций по ссылке? Хотелось бы узнать зачем нужен static? Можно ли написать иначе? //я использовала static тк без него не работает( ̄▽ ̄* ) //задача программы звучит так: Найти f= (f(a)+f(b)) /f(c), где f(x), например f(5) = 1+2+3+4+5;
0
|
29.09.2020, 20:47 | |
Ответы с готовыми решениями:
10
как передать аргумент по ссылке в JScript?
Как передать в функцию аргумент с арифметическим действием? |
![]() ![]() 17805 / 12956 / 3381
Регистрация: 17.09.2011
Сообщений: 21,243
|
|
29.09.2020, 20:54 | 2 |
![]() Решение
Дайте критерии адекватности.
Добавив модификатор ref к параметрам. Только зачем? Чтобы метод можно было вызывать без создания экземпляра класса.
0
|
![]() 0 / 0 / 0
Регистрация: 17.04.2020
Сообщений: 47
|
|
29.09.2020, 21:03 [ТС] | 3 |
C критериями сложнее - может быть есть у кого знания, как сделать такой код короче и эффективнее
А по поводу ссылки - если я правильно понимаю, то благодаря ней в аргументы ф-ций будет передаваться значение (а не создаваться новая ненужная локальная переменная) ...или я ошибаюсь?
0
|
627 / 391 / 135
Регистрация: 06.03.2017
Сообщений: 1,469
|
|
29.09.2020, 21:07 | 4 |
![]() Решение
TomasMaple, в 24 строке у вас будет возвращаться целочисленное значение.
1
|
![]() ![]() 17805 / 12956 / 3381
Регистрация: 17.09.2011
Сообщений: 21,243
|
|
29.09.2020, 21:08 | 5 |
Краткость — не вседа хорошо. Зачастую даже наоборот.
А по поводу эффективности — метод FactSum может взорвать стек при слишком больших значениях n или при любых значениях n меньше единицы. Будет передаваться переменная. Значение у вас сейчас передается, без ref.
1
|
627 / 391 / 135
Регистрация: 06.03.2017
Сообщений: 1,469
|
|
29.09.2020, 21:10 | 6 |
С чего вдруг она ненужная. На самом деле передачей по ссылке вы не сделаете никаких оптимизаций, и даже наоборот, можно таким образом навредить
0
|
![]() 0 / 0 / 0
Регистрация: 17.04.2020
Сообщений: 47
|
||||||
29.09.2020, 21:16 [ТС] | 7 | |||||
Значения переменных будут большие до 500... Лучше использовать for?
Добавлено через 1 минуту На данный момент, к сожалению, переменной result ничего не присваивается (вот тут)
Добавлено через 1 минуту Pilarentes, а как можно навредить? Как указали выше - накроется стек?
0
|
![]() ![]() 17805 / 12956 / 3381
Регистрация: 17.09.2011
Сообщений: 21,243
|
|
29.09.2020, 21:20 | 8 |
Если до 500, то это ерунда, можете оставить рекурсию.
Только проверку исправьте, на случай если туда значение меньше единицы прилетит. Если вы это определили по выводу в консоль нуля после завершения метода, то это не потому, что не присваивается, а потому, что у вас целочисленное деление, как выше верно подметили. 1 / 2 = 0
1
|
627 / 391 / 135
Регистрация: 06.03.2017
Сообщений: 1,469
|
|
29.09.2020, 21:30 | 9 |
![]() Решение
Конкретно в вашем примере вреда большого не будет. Но ведь можно случайно поменять значение исходной переменной. Вообще передавать аргументы по ссылке нужно тогда, когда вы действительно в этом нуждаетесь. Вот эти оптимизации на спичках роли не сыграют
1
|
![]() 0 / 0 / 0
Регистрация: 17.04.2020
Сообщений: 47
|
|
29.09.2020, 21:33 [ТС] | 10 |
А можно пример необходимости использования ссылки?
0
|
627 / 391 / 135
Регистрация: 06.03.2017
Сообщений: 1,469
|
|
29.09.2020, 21:40 | 11 |
TomasMaple, Вообще по ссылке и только по ссылке передаются все классы. И это нужно учитывать при написании приложений. Просто примите это за аксиому. Раньше чем вы разберетесь в ссылках, передавать целочисленные типы вам вряд-ли пригодится
![]()
1
|
29.09.2020, 21:40 | |
Помогаю со студенческими работами здесь
11
Как правильно передать уникальный аргумент в функцию Как передать аргумент в функцию при клике?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
![]() |
Новые блоги и статьи
![]() |
||||
Java Record или Kotlin Data Class: что лучше для неизменяемых данных
Wired 04.03.2025
Java Record и Kotlin Data Class - средства для работы с неизменяемыми структурами данных, каждое из которых предлагает свой уникальный подход к решению этой задачи. История их появления весьма. . .
|
Создание производительных API с Java и gRPC
Wired 04.03.2025
В разработке производительность и масштабируемость микросервисных приложений играют ключевую роль. Традиционные REST API, несмотря на свою популярность и простоту, не всегда способны обеспечить. . .
|
Что нового в JDK 24
Wired 04.03.2025
JDK 24 знаменует собой значительный скачок в развитии Java, внося фундаментальные улучшения в производительность, безопасность и удобство разработки. Релиз включает множество революционых изменений,. . .
|
Разработка блокчейн с использованием Java: смарт-контракты и dApp
Wired 04.03.2025
Современная блокчейн-разработка на Java предоставляет разработчикам широкий спектр возможностей. В отличие от Solidity, который ограничен экосистемой Ethereum, Java позволяет создавать как. . .
|
WebAssembly в Kubernetes
stackOverflow 03.03.2025
В современной экосистеме облачных технологий WebAssembly (Wasm) становится все более значимым компонентом, предлагая уникальный подход к выполнению кода в распределенных системах. Эта технология. . .
|
GitHub Actions или Jenkins: Выбираем CI/CD платформу
stackOverflow 03.03.2025
Непрерывная интеграция и развертывание (CI/ CD) изменили подход к разработке программного обеспечения, превратив его в бесшовный процесс от написания кода до развертывания в продакшн. GitHub Actions и. . .
|
Автоматизация тестирования Pull Request в Kubernetes: Интеграция с GitHub Actions и GKE
stackOverflow 03.03.2025
Масштабные проекты с использованием Kubernetes требуют надежной системы тестирования изменений перед их внедрением в продакшн-среду. Традиционный подход с ручной проверкой Pull Request не справляется. . .
|
Tестирование Pull Request в Kubernetes с помощью vCluster
stackOverflow 03.03.2025
При работе с микросервисной архитектурой критически важно обеспечить качественное тестирование каждого изменения перед его слиянием в основную кодовую базу. Однако тестирование Pull Request в. . .
|
Использование пакета Context в Golang
bytestream 03.03.2025
Управление параллельными процессами в современных приложениях - сложная задача, особенно когда речь идет о микросервисной архитектуре и распределенных системах. Пакет context в Go - это гибкое. . .
|
WebAssembly и Go: Работа с DOM и обработка ошибок
bytestream 03.03.2025
WebAssembly представляет собой технологию, позволяющую запускать низкоуровневый код в браузере практически на нативной скорости. Особенно интересные возможности открываются при использовании. . .
|