logo

Cum se transmite un șir unei funcții folosind Apel prin referință?

Trecerea unui șir prin referință în diferite limbaje de programare implică utilizarea unor mecanisme sau constructe specifice pentru a permite funcției să modifice direct șirul original, mai degrabă decât să lucreze cu o copie. Aici, voi explica cum să realizați acest lucru în C++, C#, Python și JavaScript.

Cuprins



Cum se transmite un șir unei funcții folosind Apel prin referință în C++

În C++, puteți trece un șir prin referință folosind „ &'> simbol în lista de parametri ai funcției. Acest lucru vă permite să modificați șirul original direct în cadrul funcției.

De exemplu:

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

>

np.histogramă
>

Ieșire

Modified string>

Cum să transmiteți un șir unei funcții folosind Apel prin referință în Java

Nu puteți trece direct un șir prin referință, deoarece Java este un limbaj de trecere după valoare, iar șirurile sunt imuabile. Cu toate acestea, puteți obține un efect similar utilizând structuri de date mutabile sau prin încapsularea șirului într-un obiect personalizat.

Utilizarea unei structuri de date modificabile (StringBuilder)

Puteți folosiStringBuilder>clasă, care este o secvență mutabilă de caractere, pentru a modifica un obiect asemănător șirului și a-l transmite unei funcții. Deși aceasta nu este trecerea strictă a unui șir prin referință, vă permite să obțineți efectul dorit de modificare a obiectului original asemănător șirului.

Pași:

  1. Creeaza oStringBuilder>obiect cu șirul inițial.
  2. TrecețiStringBuilder>obiect la funcție.
  3. ModificațiStringBuilder>obiect în cadrul funcției.
  4. Accesați șirul modificat dinStringBuilder>obiect după apelul funcției.

Exemplu:

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

>

ce este 10 din 1 milion

>

Ieșire

Original String (Modified)>

Cum se transmite un șir unei funcții folosind Apel prin referință în C#

În C#, puteți trece un șir prin referință folosind ' ref'> cuvânt cheie din lista de parametri ai funcției. Acest lucru vă permite să modificați șirul original direct în cadrul funcției.

Exemplu:

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

concatenare de șiruri

>

>

Ieșire

Modified string>

Cum se transmite un șir unei funcții folosind Apel prin referință în Python

În Python, șirurile sunt imuabile, așa că nu le puteți trece prin referință. Cu toate acestea, puteți rezolva această limitare prin trecere o structură de date mutabilă, cum ar fi a listă, apoi convertindu-l înapoi într-un șir daca este nevoie.

Exemplu:

Piton




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

>

set dactilografiat
>

Ieșire

Modified string>

Cum să transmiteți un șir unei funcții folosind Apel prin referință în JavaScript

În JavaScript, puteți obține un efect similar prin trecerea unui obiect cu o proprietate care deține șirul . Puteți atunci modificați proprietatea din funcție.

Exemplu:

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

>

>

Ieșire

număr aleator între 1 și 10
Modified string>

În aceste limbaje de programare, puteți trece șiruri de caractere prin referință (sau un efect similar) folosind tehnici specifice limbajului. Cu toate acestea, este esențial să fiți conștienți de regulile limbajului și structurile de date, deoarece imuabilitatea șirurilor în Python și JavaScript poate afecta abordarea pe care o luați.