【百例RUST - 004】函数使用

一、四类函数

第01节 无参数无返回值

rust 复制代码
fn main(){
    println!("函数的定义和使用");
    // 函数的调用
    method_name();
}


// 函数的定义  函数名称推荐是小写字母, 单词之间下划线隔开
fn method_name(){
    println!("我是无参数, 无返回值的函数");
}

第02节 有参数无返回值

rust 复制代码
fn main(){

    println!("函数的定义和使用");
    // 函数的调用
    let argument1 = 10;
    let argument2 = 6.6;
    let argument3 = "30";
    let argument4 = true;
    method_name(argument1, argument2, argument3.to_string(), argument4);

}


// 函数的定义  函数名称推荐是小写字母, 单词之间下划线隔开
fn method_name(param1 : i32, param2 : f32, param3 : String, param4: bool){
    println!("我是有参数, 无返回值的函数, 参数分别是 {} {} {} {}" , param1 , param2 , param3.to_string(), param4);
}

第03节 无参有返回值

rust 复制代码
fn main(){
    println!("函数的定义和使用");
    // 函数的调用
    let result = method_name();
    println!("返回结果是 {}" , result);
}


// 函数的定义  函数名称推荐是小写字母, 单词之间下划线隔开
fn method_name() -> i32 {
    println!("我是无参数, 有返回值的函数");
    return 66;
}

说明一下: 这里也可以直接返回 66 同时去掉 return分号

第04节 有参数有返回值

rust 复制代码
fn main(){

    println!("函数的定义和使用");
    // 函数的调用
    let argument1 = 4;
    let argument2 = 3;
    let result = method_name(argument1, argument2);
    println!("返回结果是 {}" , result);
}


// 函数的定义  函数名称推荐是小写字母, 单词之间下划线隔开
fn method_name(param1:i32, param2:i32) -> i32 {
    println!("我是有参数, 有返回值的函数");
    param1 + param2
}

二、相关问题

第01节 返回值问题

复制代码
1、对于返回值来说:
	A. 可以定义为 return 返回值;  
	B. 也可以省略 return 和 分号
	如果省略了 return 和 分号, 那么最后一个表达式将会作为 返回值。
	
2、省略的规则:
	如果要省略需要同时省略 return 和 分号

第02节 重载问题

复制代码
rust 没有函数的重载写法, 可以定义不同的函数名称, 实现不同的功能

第03节 可变参数

复制代码
rust 没有可变参数的函数写法。
相关推荐
Percep_gan几秒前
禁用Linux默认端口监听IPv6地址,修改为监听IPv4
linux·运维·服务器
一路往蓝-Anbo2 分钟前
第 2 篇:单例模式 (Singleton) 与 懒汉式硬件初始化
开发语言·数据结构·stm32·单片机·嵌入式硬件·链表·单例模式
云飞云共享云桌面2 分钟前
SolidWorks如何实现多人共享
服务器·前端·数据库·人工智能·3d
321.。2 分钟前
从 0 到 1 实现 Linux 下的线程安全阻塞队列:基于 RAII 与条件变量
linux·开发语言·c++·学习·中间件
济6173 分钟前
linux 系统移植(第二十二期)---- 初步测试BusyBox构建的根文件系统---- Ubuntu20.04
linux·运维·服务器
疯狂的喵4 分钟前
实时信号处理库
开发语言·c++·算法
h7ml4 分钟前
电商返利系统中佣金计算的幂等性保障与对账补偿机制实现
服务器·前端·php
程序员清洒4 分钟前
Flutter for OpenHarmony:Stack 与 Positioned — 层叠布局
开发语言·flutter·华为·鸿蒙
what丶k4 分钟前
深入理解Java NIO:从原理到实战的全方位解析
java·开发语言·nio
资料库015 分钟前
Bond的模式都有哪些?
服务器·网络