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#
- Kaip perduoti eilutę funkcijai naudojant „Java“ iškvietimą pagal nuorodą
- Kaip perduoti eilutę funkcijai naudojant Python iškvietimą pagal nuorodą
- Kaip perduoti eilutę funkcijai naudojant „JavaScript“ iškvietimą pagal nuorodą
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
- Sukurti
StringBuilder>objektas su pradine eilute. - Praleiskite
StringBuilder>prieštarauja funkcijai. - Pakeiskite
StringBuilder>objektą funkcijos viduje. - 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čiaIš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.