logo

Kuinka välittää merkkijono funktiolle kutsun avulla?

Merkkijonon välittäminen viittauksella useissa ohjelmointikielissä edellyttää tiettyjen mekanismien tai konstruktien käyttöä, jotta funktio voi muokata alkuperäistä merkkijonoa suoraan kopion käyttämisen sijaan. Tässä selitän, kuinka tämä saavutetaan C++:ssa, C#:ssa, Pythonissa ja JavaScriptissä.

Sisällysluettelo



Kuinka välittää merkkijono funktiolle käyttämällä Call by Referencea C++:ssa

C++:ssa voit välittää merkkijonon viittauksella käyttämällä ' &'> symboli toimintoparametriluettelossa. Tämän avulla voit muokata alkuperäistä merkkijonoa suoraan funktiossa.

Esimerkiksi:

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

>

jatkotietotyyppejä
>

Lähtö

Modified string>

Kuinka välittää merkkijono funktiolle Java-kutsulla

Et voi välittää merkkijonoa suoraan viittauksella, koska Java on ohitusarvokieli ja merkkijonot ovat muuttumattomia. Voit kuitenkin saavuttaa samanlaisen vaikutuksen käyttämällä muuttuvia tietorakenteita tai kapseloimalla merkkijonon mukautettuun objektiin.

Muuttuvan tietorakenteen käyttäminen (StringBuilder)

Voit käyttääStringBuilder>luokka, joka on muuttuva merkkijono, jolla muokataan merkkijonomaista objektia ja siirretään se funktiolle. Vaikka tämä ei ole tiukasti merkkijonon välittämistä viitteellä, sen avulla voit saavuttaa halutun vaikutuksen alkuperäisen merkkijonomaisen objektin muokkaamisesta.

Askeleet:

  1. LuoStringBuilder>objekti alkumerkkijonolla.
  2. Anna minulleStringBuilder>vastustaa toimintoa.
  3. MuokkaaStringBuilder>objekti funktion sisällä.
  4. Käytä muokattua merkkijonoa kohdastaStringBuilder>objekti funktiokutsun jälkeen.

Esimerkki:

Java


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

>

>

Lähtö

Original String (Modified)>

Kuinka välittää merkkijono funktiolle kutsun avulla C#:ssa

C#:ssa voit välittää merkkijonon viittauksella käyttämällä ' ref'> avainsana funktioparametriluettelossa. Tämän avulla voit muokata alkuperäistä merkkijonoa suoraan funktiossa.

Esimerkki:

C#

java-merkkijono boolean-arvoksi




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

>

>

Lähtö

Modified string>

Kuinka välittää merkkijono funktiolle Pythonin kutsun avulla

Pythonissa merkkijonot ovat muuttumattomia, joten et voi välittää niitä viittauksella. Voit kuitenkin kiertää tämän rajoituksen seuraavasti ohimennen muuttuva tietorakenne, kuten a luettelosta ja muuntaa sen sitten takaisin merkkijonoksi tarvittaessa.

Esimerkki:

Python

alleviivaus




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

>

>

Lähtö

Modified string>

Kuinka välittää merkkijono funktiolle JavaScriptin kutsun avulla

JavaScriptissä voit saavuttaa samanlaisen vaikutuksen ohittaa objektin, jolla on ominaisuus, joka pitää merkkijonon . Sitten voit muokata ominaisuutta funktion sisällä.

Esimerkki:

Javascript


python muuntaa tavut merkkijonoksi



function> modifyString(obj) {> >obj.str =>'Modified string'>;> }> const myObj = { str:>'Original string'> };> modifyString(myObj);> const myString = myObj.str;> console.log(myString);>// Output: 'Modified string'>

>

>

Lähtö

Modified string>

Näissä ohjelmointikielissä voit välittää merkkijonoja viittauksella (tai vastaavalla tehosteella) käyttämällä kielikohtaisia ​​tekniikoita. On kuitenkin tärkeää olla tietoinen kielen säännöistä ja tietorakenteista, koska merkkijonojen muuttumattomuus Pythonissa ja JavaScriptissä voi vaikuttaa valitsemaasi lähestymistapaan.