Забавный rust
От: vaa https://www.youtube.com/playlist?list=PLtrvASfI1KW7VOYRKjglcagQzWLoxlncl
Дата: 31.05.22 02:16
Оценка:
Заставить заработать этот кусок потребовалось около получаса. Я все еще не понимаю разницы.
#[derive(Debug)]
struct Person {
    name : String
}

fn main() {
    let name = String::from("Alice");
    let alice = Person { name };            
    let bob = Person { name: "Bob".to_string() };
    for person in [alice, bob] {    
        println!("Hello, {:?}!", person);
   }    
   let name = "Mary";    
   println!("Hello, {}!", name);
}


Для сравнения код на F#:
type Person = { name : string }
let name = "Alice"
let alice = { name = name }
let bob = { name = "Bob" }
for e in [alice; bob ] do printfn "Hello, %A!" e
let name = "Mary"
printfn "hello, %s!" name


3 разных способа задать строковое значение. не многовато?
Впечатление от компилятора раста неплохие, в каждом месте подробное описание с подсказками, что можно сделать, не очень правда удачные.
например если в массиве поставить точку с запятой, то он предлагает боба пометить const,
помечаю , тогда он начинает верещать что bob надо заменить на bob : Person =. Зачем если тип справа определен?
Весело. Но если внимательно читать и постепенно исправлять то в конце концов собирается.
Смешанные чувства, то ли раст это одна большая бага, то ли фича
Отредактировано 31.05.2022 2:17 vaa . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.