Параметры и аргументы
Часть раздела Fundamentals путешествия по Rust на Coddy — урок 50 из 75.
Аргумент функции — это значение, которое вы передаете в функцию при ее вызове. Чтобы добавить аргументы в функцию, мы записываем их внутри круглых скобок ():
fn function_name(arg1: data_type, arg2: data_type, ...) {
// код
}Мы можем называть аргументы как хотим и можем писать столько аргументов, сколько нам нужно.
Чтобы вызвать функцию и передать ей аргументы, мы пишем:
function_name(value1, value2, value3, ...);Передача слишком большого количества аргументов функции, которая ожидает меньшее количество аргументов, приведет к сбою программы.
Пример использования:
fn is_even(number: i32) {
if number % 2 == 0 {
println!("{} is even", number);
} else {
println!("{} is odd", number);
}
}
for i in 15..34 {
is_even(i);
}
for i in 153..219 {
is_even(i);
}Здесь у нас есть функция под названием is_even, которая принимает один аргумент под названием number и выводит на экран, является ли число четным или нечетным. Затем мы вызываем функцию дважды: первый раз для всех чисел от 15 до 34, второй раз для всех чисел от 153 до 219.
Задание
ЛегкоНапишите программу, которая получает два числа на вход. Входные числа являются аргументами функции.
Создайте функцию, которая принимает два аргумента, вычисляет их произведение и выводит его на экран. Назовите функцию как угодно.
Вызовите функцию с входными числами.
Примечание! В вашем коде напишите функцию перед операторами её вызова/выполнения.
Шпаргалка
Чтобы добавить аргументы в функцию, запишите их внутри круглых скобок вместе с их типами данных:
fn function_name(arg1: data_type, arg2: data_type) {
// код
}Вызовите функцию, передав значения в качестве аргументов:
function_name(value1, value2);Пример с одним аргументом:
fn is_even(number: i32) {
if number % 2 == 0 {
println!("{} is even", number);
} else {
println!("{} is odd", number);
}
}
is_even(42);Передача слишком большого количества аргументов в функцию приведет к сбою программы
Попробуйте сами
use std::io;
// Объявление функции
fn main() {
let mut input_a = String::new();
let mut input_b = String::new();
io::stdin().read_line(&mut input_a).unwrap();
io::stdin().read_line(&mut input_b).unwrap();
let a: i32 = input_a.trim().parse().unwrap();
let b: i32 = input_b.trim().parse().unwrap();
// Вызов функции с аргументами a и b
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Fundamentals
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияАрифметические сокращенияОператоры сравненияСравнение строк7Основы ввода-вывода
Вывод в консольЧтение ввода пользователяПовторение — До 120Повторение — True или False5Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 38Приложение-калькулятор
Приветственное сообщениеПолучение чисел3Переменные. Часть 2
Объявление типаСоглашения об именованииВывод типовПовторение: инициализация переменныхПриведение типов9Циклы
Цикл For по последовательностиЦикл WhileОператор BreakОператор ContinueВложенные циклыМетки цикловБесконечный циклПовторение — Динамический ввод