Хорошая практика программирования - всегда передавать по значению, когда это возможно, и если вам нужно изменить одно значение, обычно лучше возвращать измененное значение как результат функции, а не передавать значение по ссылке.
Единственные случаи, когда вам может понадобиться передать по ссылке, это когда вам нужно изменить несколько значений. Однако эти случаи, как правило, редки и обычно должны рассматриваться как флаг для проверки вашего кода, потому что, вероятно, есть лучший способ решения проблемы.
Раньше языки раннего программирования, которые всегда использовались для передачи по ссылке и передачи по значению, были более поздней разработкой для решения возникших проблем (вы, как правило, сталкиваетесь с неясными ошибками, потому что рано или поздно некоторые программисты помещают код в измените переданное по ссылке значение в той или иной функции, и тогда будет сложно определить, где и как исправить - вы, как правило, в конечном итоге сталкиваетесь с множеством неясных зависимостей). Следовательно, это действительно извращенно - всерьез рассматривать это как вариант для сокращения нескольких машинных циклов, когда у нас несколько поколений процессоров за пределами того уровня, когда он считался хорошим компромиссом между процессором и сложностью, чтобы помочь в чистоте и обслуживании. код.