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#
- Cum să transmiteți un șir unei funcții folosind Apel prin referință în Java
- Cum se transmite un șir unei funcții folosind Apel prin referință în Python
- Cum se transmite un șir unei funcții folosind Apel prin referință în JavaScript
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:
- Creeaza o
StringBuilder>obiect cu șirul inițial. - Treceți
StringBuilder>obiect la funcție. - Modificați
StringBuilder>obiect în cadrul funcției. - Accesați șirul modificat din
StringBuilder>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.