logo

Kaip perduoti eilutę funkcijai naudojant skambutį pagal nuorodą?

Perduodant eilutę pagal nuorodą įvairiose programavimo kalbose reikia naudoti konkrečius mechanizmus arba konstrukcijas, leidžiančias funkcijai tiesiogiai modifikuoti pradinę eilutę, o ne dirbti su kopija. Čia paaiškinsiu, kaip tai pasiekti naudojant C++, C#, Python ir JavaScript.

Turinys

Kaip perduoti eilutę funkcijai naudojant iškvietimą pagal nuorodą C++

C++ kalboje eilutę galite perduoti pagal nuorodą naudodami „ &'> simbolis funkcijų parametrų sąraše. Tai leidžia modifikuoti pradinę eilutę tiesiogiai funkcijoje.



Pavyzdžiui:

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

>

python spausdinimas 2 skaitmenų po kablelio tikslumu
>

Išvestis

Modified string>

Kaip perduoti eilutę funkcijai naudojant „Java“ iškvietimą pagal nuorodą

Negalite tiesiogiai perduoti eilutės pagal nuorodą, nes „Java“ yra perduodamų reikšmių kalba, o eilutės yra nekintančios. Tačiau panašų efektą galite pasiekti naudodami kintamas duomenų struktūras arba įtraukdami eilutę į pasirinktinį objektą.

Keičiamos duomenų struktūros naudojimas („StringBuilder“)

Galite naudotiStringBuilder>klasė, kuri yra kintama simbolių seka, kad būtų galima modifikuoti į eilutę panašų objektą ir perduoti jį funkcijai. Nors tai nėra tik eilutės perdavimas pagal nuorodą, tai leidžia pasiekti norimą efektą modifikuojant pradinį į eilutę panašų objektą.

Veiksmai:

eilutės konvertavimas į sveikąjį skaičių Java
  1. SukurtiStringBuilder>objektas su pradine eilute.
  2. PraleiskiteStringBuilder>prieštarauja funkcijai.
  3. PakeiskiteStringBuilder>objektą funkcijos viduje.
  4. Pasiekite pakeistą eilutę išStringBuilder>objektas po funkcijos iškvietimo.

Pavyzdys:

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

>

>

tyčia tyčia
Išvestis

Original String (Modified)>

Kaip perduoti eilutę funkcijai naudojant iškvietimą pagal nuorodą C#

C# kalboje eilutę galite perduoti pagal nuorodą naudodami ' ref'> raktinį žodį funkcijos parametrų sąraše. Tai leidžia modifikuoti pradinę eilutę tiesiogiai funkcijoje.

Pavyzdys:

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

>

>

Išvestis

Modified string>

Kaip perduoti eilutę funkcijai naudojant Python iškvietimą pagal nuorodą

Python programoje eilutės yra nekintamos, todėl negalite jų perduoti pagal nuorodą. Tačiau galite apeiti šį apribojimą praeinant kintama duomenų struktūra, pvz., a sąrašą, tada konvertuokite jį atgal į eilutę Jei reikia.

Pavyzdys:

Python


lygus metodui java



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

>

>

Išvestis

Modified string>

Kaip perduoti eilutę funkcijai naudojant „JavaScript“ iškvietimą pagal nuorodą

„JavaScript“ panašų efektą galite pasiekti naudodami perduoti objektą, turintį savybę, kurioje yra eilutė . Tada galite pakeisti funkcijos savybę.

Pavyzdys:

Javascript




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

>

>

Išvestis

Modified string>

Šiose programavimo kalbose eilutes galite perduoti pagal nuorodą (arba panašų efektą), naudodami konkrečiai kalbai būdingus metodus. Tačiau labai svarbu žinoti kalbos taisykles ir duomenų struktūras, nes eilučių nekintamumas Python ir JavaScript gali turėti įtakos jūsų pasirinktam požiūriui.