logo

Hoe geef ik een string door aan een functie met behulp van Call by Reference?

Het doorgeven van een string door middel van verwijzing in verschillende programmeertalen impliceert het gebruik van specifieke mechanismen of constructies om de functie in staat te stellen de originele string rechtstreeks te wijzigen, in plaats van met een kopie te werken. Hier leg ik uit hoe je dit kunt bereiken in C++, C#, Python en JavaScript.

Inhoudsopgave



Hoe u een tekenreeks aan een functie kunt doorgeven met behulp van Call by Reference in C++

In C++ kun je een string doorgeven door middel van verwijzing met behulp van de ‘ &'> symbool in de functieparameterlijst. Hierdoor kunt u de originele string rechtstreeks binnen de functie wijzigen.

Bijvoorbeeld:

C++








#include> #include> // using '&' symbol before the name of the string> void> modifyString(std::string& str)> {> >str =>'Modified string'>;> }> int> main()> {> >std::string myString =>'Original string'>;> >modifyString(myString);> >std::cout << myString> ><< std::endl;>// Output: 'Modified string'> >return> 0;> }>

>

woordenboek c#
>

Uitvoer

Modified string>

Hoe u een string aan een functie kunt doorgeven met behulp van Call by Reference in Java

U kunt een tekenreeks niet rechtstreeks doorverwijzen, omdat Java een pass-by-value-taal is en tekenreeksen onveranderlijk zijn. U kunt echter een soortgelijk effect bereiken door veranderlijke gegevensstructuren te gebruiken of door de tekenreeks in een aangepast object in te kapselen.

Een veranderlijke gegevensstructuur gebruiken (StringBuilder)

U kunt gebruik maken van deStringBuilder>class, een veranderlijke reeks tekens, om een ​​stringachtig object te wijzigen en door te geven aan een functie. Hoewel dit niet strikt genomen een string doorgeeft als referentie, kunt u hiermee het gewenste effect bereiken door het oorspronkelijke stringachtige object te wijzigen.

Stappen:

  1. Maak eenStringBuilder>object met de initiële string.
  2. Geef deStringBuilder>bezwaar maken tegen de functie.
  3. Wijzig deStringBuilder>object binnen de functie.
  4. Open de gewijzigde tekenreeks vanuit hetStringBuilder>object na de functieaanroep.

Voorbeeld:

Java




Java-ontwerppatroon
public> class> StringModificationExample {> >static> void> modifyString(StringBuilder strBuilder) {> >strBuilder.append(>' (Modified)'>);> >}> >public> static> void> main(String[] args) {> >StringBuilder myStringBuilder =>new> StringBuilder(>'Original String'>);> >modifyString(myStringBuilder);> >String myString = myStringBuilder.toString();> >System.out.println(myString);>// Output: 'Original String (Modified)'> >}> }>

>

>

Uitvoer

Original String (Modified)>

Hoe u een tekenreeks aan een functie kunt doorgeven met behulp van Call by Reference in C#

In C# kunt u een tekenreeks doorgeven door middel van verwijzing met behulp van de ' ref'> trefwoord in de functieparameterlijst. Hierdoor kunt u de originele string rechtstreeks binnen de functie wijzigen.

Voorbeeld:

C#


wat is Computer



using> System;> class> Program {> >static> void> ModifyString(>ref> string> str) {> >str =>'Modified string'>;> >}> >static> void> Main() {> >string> myString =>'Original string'>;> >ModifyString(>ref> myString);> >Console.WriteLine(myString);>// Output: 'Modified string'> >}> }>

>

>

Uitvoer

Modified string>

Hoe u een string aan een functie kunt doorgeven met behulp van Call by Reference in Python

In Python zijn strings onveranderlijk, dus je kunt ze niet doorgeven als referentie. U kunt deze beperking echter omzeilen door passeren een veranderlijke datastructuur, zoals a list en converteer deze vervolgens terug naar een string indien nodig.

Voorbeeld:

Python




def> modify_string(string_list):> >string_list[>0>]>=> 'Modified string'> my_string_list>=> [>'Original string'>]> modify_string(my_string_list)> my_string>=> my_string_list[>0>]> print>(my_string)># Output: 'Modified string'>

abstracte methoden
>

>

Uitvoer

Modified string>

Hoe u een tekenreeks aan een functie kunt doorgeven met behulp van Call by Reference in JavaScript

In JavaScript kunt u een soortgelijk effect bereiken door een object doorgeven met een eigenschap die de string bevat . Dat kan dan wijzig de eigenschap binnen de functie.

Voorbeeld:

Javascript




function> modifyString(obj) {> >obj.str =>'Modified string'>;> }> const myObj = { str:>'Original string'> };> modifyString(myObj);> const myString = myObj.str;> console.log(myString);>// Output: 'Modified string'>

>

Hallo wereld Java
>

Uitvoer

Modified string>

In deze programmeertalen kunt u tekenreeksen doorgeven door middel van verwijzing (of een soortgelijk effect) met behulp van taalspecifieke technieken. Het is echter essentieel om op de hoogte te zijn van de regels en datastructuren van de taal, omdat de onveranderlijkheid van tekenreeksen in Python en JavaScript van invloed kan zijn op de aanpak die u kiest.