Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.0k views
in Technique[技术] by (71.8m points)

Rust 有返回值类型的函数中的 else if 为什么一定要写else,不然报错

fn test(a:i32)->bool{
    if a>2{
        true
    }
    else if a<2{
        false
    }
}

这串代码在 VSCode 中报出了

图片.png

为什么要多写else才能消除警告

fn test(a:i32)->bool{
    if a>2{
        true
    }
    else if a<2{
        false
    }
    else{
        false
    }
}

虽有查到
Rust花括号返回值探究
关于函数不写return时候返回值的疑惑
但还是不理解为什么要这么写,或者设计


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

不写 else 那当 a 等于 2 时,test函数的返回值应该是为 true 还是 false 呢?rust 没法识别出正确的业务返回值,所以必须强制编写啊。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

57.0k users

...