rust 函数基础

rust 函数定义,发散函数,函数指针

// 函数定义和参数声明
// 必须为参数声明类型
// 只能返回一个返回值
fn add(x: i32, y: i32) -> i32 {
    println!("x + y = {}", x + y);
    x + y   // 返回值不加;为表达式
            // 可以使用 return 提早返回不放在最后一行
}

// 发散函数 (Diverging functions)
// 发散函数不返回
fn diverges() -> ! {
    panic!("this function never returns"); // 一个宏
                                           // 导致线程崩溃并返回指定信息
                                           // 它不返回,有一个类型!
                                           // 代表 “发散”
}

fn sub(x: i32, y: i32) -> i32 {
    x - y
}

fn main() {

    // 函数调用 返回值
    let r = add(10, 100);
    println!("r is : {}", r);

    // 调用发散函数
    // diverges(); // 想要更多崩溃信息,
                // 设定RUST_BACKTRACE环境变量来获取 backtrace
                // shell执行:RUST_BACKTRACE=1 ./diverges

    // 函数指针
    let f: fn(i32, i32) -> i32;  // 声明一个函数变量绑定(类似C语言声明函数指针类型)
    f = sub;
    println!("f return : {}", f(20, 10));
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值