- 主题:[求助]为什么这里分号有没有都行
let mut counter = 0;
let result = loop {
counter += 1;
if counter == 10 {
break counter * 2; //为啥这里的分号有没有都行
}
};
println!("The result is {}", result);
--
FROM 124.129.22.*
你就理解为语法包容吧,反正不会生产歧义,就类似于 fn foo(a: i32,) 这里有没有逗号都一样。
【 在 woshidashu 的大作中提到: 】
: let mut counter = 0;
: let result = loop {
: counter += 1;
: ...................
--
FROM 116.237.207.*
这个时候 break 与 return 一样,是最后一条语句。
【 在 woshidashu 的大作中提到: 】
: let mut counter = 0;
: let result = loop {
: counter += 1;
: ...................
--
FROM 223.91.111.*
我理解,编译器的原则一直是以人类理解为本。
只要不影响人类理解歧义,就不会把判断条件扩展。以此提升舒适度。
譬如类似的,印象中 let v = vec![1,2,3,4,]; 是否多打一个‘,’并不影响编译正确性
像其他语言的编译器就不行了
【 在 woshidashu 的大作中提到: 】
: let mut counter = 0;
: let result = loop {
: counter += 1;
: ...................
--
FROM 123.127.159.*