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#
- Hur man skickar en sträng till en funktion med Call by Reference i Java
- Hur man skickar en sträng till en funktion med Call by Reference i Python
- Hur man skickar en sträng till en funktion med Call by Reference i JavaScript
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:
- Skapa en
StringBuilder>objekt med den initiala strängen. - Skicka
StringBuilder>invända mot funktionen. - Ändra
StringBuilder>objekt i funktionen. - Få åtkomst till den modifierade strängen från
StringBuilder>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.