logo

Hvordan sende en streng til en funksjon ved å bruke Call by Reference?

Å sende en streng ved referanse i forskjellige programmeringsspråk innebærer å bruke spesifikke mekanismer eller konstruksjoner for å la funksjonen modifisere den originale strengen direkte, i stedet for å jobbe med en kopi. Her vil jeg forklare hvordan du oppnår dette i C++, C#, Python og JavaScript.

Innholdsfortegnelse



Hvordan sende en streng til en funksjon ved å bruke Call by Reference i C++

I C++ kan du sende en streng ved referanse ved å bruke ' &'> symbol i funksjonsparameterlisten. Dette lar deg endre den opprinnelige strengen direkte i funksjonen.

For eksempel:

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;> }>

>

kajal aggarwal
>

Produksjon

Modified string>

Hvordan sende en streng til en funksjon ved å bruke Call by Reference i Java

Du kan ikke sende en streng ved referanse direkte, siden Java er et pass-by-value-språk, og strenger er uforanderlige. Du kan imidlertid oppnå en lignende effekt ved å bruke foranderlige datastrukturer eller ved å kapsle inn strengen i et tilpasset objekt.

Bruke en foranderlig datastruktur (StringBuilder)

Du kan brukeStringBuilder>klasse, som er en foranderlig sekvens av tegn, for å modifisere et strenglignende objekt og sende det til en funksjon. Selv om dette strengt tatt ikke er å sende en streng ved referanse, lar det deg oppnå ønsket effekt av å endre det originale strenglignende objektet.

Trinn:

  1. Lage enStringBuilder>objekt med den første strengen.
  2. Send megStringBuilder>objekt til funksjonen.
  3. EndreStringBuilder>objekt i funksjonen.
  4. Få tilgang til den endrede strengen fraStringBuilder>objekt etter funksjonskallet.

Eksempel:

Java

det vakreste smilet i verden




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)'> >}> }>

>

>

Produksjon

Original String (Modified)>

Hvordan sende en streng til en funksjon ved å bruke Call by Reference i C#

I C# kan du sende en streng ved referanse ved å bruke ' ref'> nøkkelord i funksjonsparameterlisten. Dette lar deg endre den opprinnelige strengen direkte i funksjonen.

np.sammenknytte

Eksempel:

C#




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'> >}> }>

>

>

Produksjon

Modified string>

Hvordan sende en streng til en funksjon ved å bruke Call by Reference i Python

I Python er strenger uforanderlige, så du kan ikke sende dem ved referanse. Du kan imidlertid omgå denne begrensningen ved å passering en foranderlig datastruktur, for eksempel en liste, og deretter konvertere den tilbake til en streng hvis nødvendig.

Eksempel:

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'>

>

nat vs seng
>

Produksjon

Modified string>

Hvordan sende en streng til en funksjon ved å bruke Call by Reference i JavaScript

I JavaScript kan du oppnå en lignende effekt ved å sende et objekt med en egenskap som holder strengen . Du kan da endre egenskapen i funksjonen.

Eksempel:

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'>

>

>

Produksjon

multithreading i java
Modified string>

I disse programmeringsspråkene kan du sende strenger ved referanse (eller en lignende effekt) ved å bruke språkspesifikke teknikker. Det er imidlertid viktig å være klar over språkets regler og datastrukturer, siden strengenes uforanderlighet i Python og JavaScript kan påvirke tilnærmingen du tar.