logo

Com passar una cadena a una funció mitjançant la trucada per referència?

Passar una cadena per referència en diversos llenguatges de programació implica utilitzar mecanismes o construccions específics per permetre que la funció modifiqui la cadena original directament, en lloc de treballar amb una còpia. Aquí, explicaré com aconseguir-ho en C++, C#, Python i JavaScript.

Taula de contingut



Com passar una cadena a una funció mitjançant la trucada per referència en C++

En C++, podeu passar una cadena per referència utilitzant el ' &'> símbol a la llista de paràmetres de funció. Això us permet modificar la cadena original directament dins de la funció.

Per exemple:

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

>

multithreading java
>

Sortida

Modified string>

Com passar una cadena a una funció mitjançant la trucada per referència a Java

No podeu passar una cadena per referència directament, ja que Java és un llenguatge de pas per valor i les cadenes són immutables. Tanmateix, podeu aconseguir un efecte similar utilitzant estructures de dades mutables o encapsulant la cadena en un objecte personalitzat.

Ús d'una estructura de dades mutable (StringBuilder)

xarxes i tipus

Podeu utilitzar elStringBuilder>class, que és una seqüència mutable de caràcters, per modificar un objecte semblant a una cadena i passar-lo a una funció. Tot i que això no és passar estrictament una cadena per referència, us permet aconseguir l'efecte desitjat de modificar l'objecte semblant a una cadena original.

Passos:

  1. Crea unStringBuilder>objecte amb la cadena inicial.
  2. Passa elStringBuilder>objecte de la funció.
  3. Modificar elStringBuilder>objecte dins de la funció.
  4. Accediu a la cadena modificada des deStringBuilder>objecte després de la crida de funció.

Exemple:

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

>

>

Sortida

Original String (Modified)>

Com passar una cadena a una funció mitjançant la trucada per referència en C#

En C#, podeu passar una cadena per referència utilitzant el ref'> paraula clau a la llista de paràmetres de funció. Això us permet modificar la cadena original directament dins de la funció.

Exemple:

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

>

pawandeep rajan
>

convertint la cadena a int java
Sortida

Modified string>

Com passar una cadena a una funció mitjançant la trucada per referència a Python

A Python, les cadenes són immutables, de manera que no les podeu passar per referència. Tanmateix, podeu evitar aquesta limitació passant una estructura de dades mutable, com ara a llista i, a continuació, torna a convertir-la en una cadena si és necessari.

Exemple:

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

>

>

Sortida

Modified string>

Com passar una cadena a una funció mitjançant la trucada per referència a JavaScript

A JavaScript, podeu aconseguir un efecte similar mitjançant passant un objecte amb una propietat que conté la cadena . Llavors pots modificar la propietat dins de la funció.

dibuix de rectangle gimp

Exemple:

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

>

>

Sortida

Modified string>

En aquests llenguatges de programació, podeu passar cadenes per referència (o un efecte similar) mitjançant tècniques específiques del llenguatge. Tanmateix, és essencial ser conscient de les regles i les estructures de dades del llenguatge, ja que la immutabilitat de cadenes en Python i JavaScript pot afectar l'enfocament que adopteu.