MCPcopy Create free account
hub / github.com/CSpyridakis/notes / strings

Function strings

Rust/notes.rs:232–297  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

230}
231
232fn strings(){
233 // ------------------------------------------------------------------------
234 // STRINGS & str
235 // The String type is a heap-allocated string.
236 // This string is growable and is also guaranteed to be UTF-8.
237 // In general, you should use String when you need ownership, and &str when you just need to borrow a string.
238 // The String data type is a UTF-8 encoded vector. But you can not index into a String because of encoding.
239
240 println!("\n======================================================================");
241 println!("* STRINGS: ");
242
243 println!("1. Conversions: ");
244 println!("\n\tA.Str -> String");
245 let s1: &str = "str"; // &str
246 pvar!(s1);
247 println!("\tlet s1 = s1.to_string();");
248 let s1 = s1.to_string(); // &str -> String
249 pvar!(s1);
250
251 println!("\n\tB.String -> str");
252 let s2 = String::from("String"); // String
253 pvar!(s2);
254 println!("\tlet s2 = s2.as_str();");
255 let s2 = s2.as_str(); // String -> &str
256 pvar!(s2);
257
258 println!("\n\tC.String -> Integer");
259 let s3: String = String::from("10");
260 pvar!(s3);
261 let s3:i32 = s3.parse().expect("Please enter a valid number.");
262 println!("\tlet s3:i32 = s3.parse().expect(\"Please enter a valid number.\");");
263 pvar!(s3);
264
265 println!("\n\tD.Integer -> String");
266 let s4: i32 = 50;
267 pvar!(s4);
268 let s4 = s4.to_string();
269 println!("\tlet s4 = s4.to_string();");
270 pvar!(s4);
271
272 // ------------------------------------------------------------------------
273 println!("\n---------------------------------------\n");
274 println!("2. Concatenations: ");
275
276 // All bellow codes return `String`; something
277 let (s1, s2) = ("some", "thing"); // both &str
278 println!("let (s1, s2) = (\"some\", \"thing\"); // both &str");
279
280 let s = String::from(s1) + s2; // String + &str
281 println!("\n\tA. let s = String::from(s1) + s2; // String + &str");
282 pvar!(s);
283
284 let mut s = String::from(s1); // String
285 s.push_str(s2); // + &str
286 println!("\n\tB. let mut s = String::from(s1); // String");
287 println!("\ts.push_str(s2); // + &str");
288 pvar!(s);
289

Callers 1

mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected