last_call
(уже не глобальную), результат присваивает переменной имя которой ей передали в параметрах и exit code работает как обычно.#!/bin/bash
last_call=never
function f {
local -n res=$1
printf -v last_call '%(%x %X)T'
res=$(($res * 2))
}
result=1
echo "Before: $last_call $result"
f result
echo "Return code: $?"
echo "After: $last_call $result"
sleep 1
f result
echo "Return code: $?"
echo "After: $last_call $result"
Before: never 1
Return code: 0
After: 06/16/2020 02:48:23 PM 2
Return code: 0
After: 06/16/2020 02:48:24 PM 4
return str.replace(/^(\d{4})(\d+)(\d{4})$/, (m, p1, p2, p3) => p1 + '*'.repeat(p2.length) + p3);
The third argument can be used to create virtual mocks – mocks of modules that don't exist anywhere in the system:
jest.mock( '../moduleName', () => { /* * Custom implementation of a module that doesn't exist in JS, * like a generated module or a native module in react-native. */ }, {virtual: true}, );
foreach
.public static bool TestForSquares(IEnumerable<int> numbers, IEnumerable<int> squares) {
var squaresEnumerator = squares.GetEnumerator();
foreach(int number in numbers) {
if(!squaresEnumerator.MoveNext()) {
// в squares закончились элементы, а в numbers ещё нет
return false;
}
if(number * number != squaresEnumerator.Current) {
return false;
}
}
if(squaresEnumerator.MoveNext()) {
// в squares ещё остались элементы, а в numbers уже всё закончилось
return false;
}
return true;
}