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#
- Hoe u een string aan een functie kunt doorgeven met behulp van Call by Reference in Java
- Hoe u een string aan een functie kunt doorgeven met behulp van Call by Reference in Python
- Hoe u een tekenreeks aan een functie kunt doorgeven met behulp van Call by Reference in JavaScript
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:
- Maak een
StringBuilder>object met de initiële string. - Geef de
StringBuilder>bezwaar maken tegen de functie. - Wijzig de
StringBuilder>object binnen de functie. - Open de gewijzigde tekenreeks vanuit het
StringBuilder>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.