logo

Hur skickar man en sträng till en funktion med Call by Reference?

Att skicka en sträng genom referens i olika programmeringsspråk innebär att man använder specifika mekanismer eller konstruktioner för att tillåta funktionen att modifiera den ursprungliga strängen direkt, snarare än att arbeta med en kopia. Här kommer jag att förklara hur man uppnår detta i C++, C#, Python och JavaScript.

Innehållsförteckning



Hur man skickar en sträng till en funktion med Call by Reference i C++

I C++ kan du skicka en sträng genom referens med hjälp av &'> symbol i funktionsparameterlistan. Detta gör att du kan modifiera den ursprungliga strängen direkt i funktionen.

Till exempel:

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

>

java kommentarer
>

Produktion

java sort arraylist
Modified string>

Hur man skickar en sträng till en funktion med Call by Reference i Java

Du kan inte skicka en sträng genom referens direkt, eftersom Java är ett språk för pass-by-value och strängar är oföränderliga. Du kan dock uppnå en liknande effekt genom att använda föränderliga datastrukturer eller genom att kapsla in strängen i ett anpassat objekt.

Använda en föränderlig datastruktur (StringBuilder)

Du kan användaStringBuilder>klass, som är en föränderlig sekvens av tecken, för att modifiera ett strängliknande objekt och skicka det till en funktion. Även om detta inte strikt är att skicka en sträng genom referens, låter det dig uppnå önskad effekt av att modifiera det ursprungliga strängliknande objektet.

Steg:

  1. Skapa enStringBuilder>objekt med den initiala strängen.
  2. SkickaStringBuilder>invända mot funktionen.
  3. ÄndraStringBuilder>objekt i funktionen.
  4. Få åtkomst till den modifierade strängen frånStringBuilder>objekt efter funktionsanropet.

Exempel:

Java




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

>

>

Produktion

Original String (Modified)>

Hur man skickar en sträng till en funktion med Call by Reference i C#

I C# kan du skicka en sträng genom referens med hjälp av ' ref'> nyckelord i funktionsparameterlistan. Detta gör att du kan modifiera den ursprungliga strängen direkt i funktionen.

Exempel:

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

oföränderlig lista
>

>

Produktion

Modified string>

Hur man skickar en sträng till en funktion med Call by Reference i Python

I Python är strängar oföränderliga, så du kan inte skicka dem genom referens. Du kan dock kringgå denna begränsning genom att godkänd en föränderlig datastruktur, såsom en lista och sedan konvertera den tillbaka till en sträng om det behövs.

Exempel:

Pytonorm




java för paus
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'>

>

>

Produktion

Modified string>

Hur man skickar en sträng till en funktion med Call by Reference i JavaScript

I JavaScript kan du uppnå en liknande effekt genom att skicka ett objekt med en egenskap som håller strängen . Du kan då ändra egenskapen i funktionen.

Exempel:

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

c uppsättning strängar
>

>

Produktion

Modified string>

I dessa programmeringsspråk kan du skicka strängar genom referens (eller liknande effekt) med hjälp av språkspecifika tekniker. Det är dock viktigt att vara medveten om språkets regler och datastrukturer, eftersom strängens oföränderlighet i Python och JavaScript kan påverka din metod.