Å 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#
- Hvordan sende en streng til en funksjon ved å bruke Call by Reference i Java
- Hvordan sende en streng til en funksjon ved å bruke Call by Reference i Python
- Hvordan sende en streng til en funksjon ved å bruke Call by Reference i JavaScript
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:
- Lage en
StringBuilder>objekt med den første strengen. - Send meg
StringBuilder>objekt til funksjonen. - Endre
StringBuilder>objekt i funksjonen. - Få tilgang til den endrede strengen fra
StringBuilder>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.