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 kutsun avulla C#:ssa
- Kuinka välittää merkkijono funktiolle Java-kutsulla
- Kuinka välittää merkkijono funktiolle Pythonin kutsun avulla
- Kuinka välittää merkkijono funktiolle JavaScriptin kutsun avulla
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:
- Luo
StringBuilder>objekti alkumerkkijonolla. - Anna minulle
StringBuilder>vastustaa toimintoa. - Muokkaa
StringBuilder>objekti funktion sisällä. - Käytä muokattua merkkijonoa kohdasta
StringBuilder>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.