2017-05-18 5 views
-1

so habe ich diese Funktion zurückzukehren, wo ich die Zeichenfolge „1“ übergeben müssen und ich habe 2 Möglichkeiten, es zu tun:Verschiedene Möglichkeiten, String-Wert

String func(){ 
    String result = "1"; 
    return result; 
} 

und:

String func(){ 
    String result = SerializeAsString(1); 
    return result; 
} 

wo :

inline std::string SerializeAsString(const T& obj) { 
     return std::string(reinterpret_cast<const char*>(&obj), sizeof(obj)); 
    } 

Ich weiß, es könnte ein dummes Q sein, aber welche Art der Codierung wird als besser angesehen?

Danke

+2

Wir können Ihnen nicht sagen, was besser ist, da sie zwei völlig verschiedene Dinge tun. – NathanOliver

+0

wird SerializeAsString keine "1" Zeichenfolge zurückgeben? –

+1

@ O.San, nein. Es wird seine binäre Darstellung zurückgeben, was wahrscheinlich nicht das ist, was Sie erwarten. – Incomputable

Antwort

1

ich mit dem ersten Verfahren gehen würde. Ich sehe den Sinn von Methode 2 nicht. In meiner Erfahrung ist es am besten, die Dinge einfach und lesbar zu halten.

1

Sie geben nicht "1" weiter - Sie kehren von der Funktion zurück. Wenn Sie von einer Funktion „1“ zurückkehren möchten, können Sie einfach

String func(){ 
    .... 
    return "1"; 
} 

keine Notwendigkeit tun, den Wert „1“ in einigen Variablen zu speichern.

0

Die erste von Ihnen aufgelistete Methode ist Standard für die meisten String-Funktionen.

String foo(){ 
string bar = "This is my string"; 
return bar; 
} 

Returns: "Das ist mein String"

oder

String foo(){ 
//Your code here... 
return "bar"; 
} 

Returns: "bar"

Es gibt keine wirkliche Möglichkeit, die unbedingt besser ist als ein anderes hängt davon ab, was Sie erreichen wollen. Für einfache Strings bevorzuge ich diese Methode, weil sie sauber und einfach ist.

Verwandte Themen