# calling individual values without storing them

I'm trying to call individual values from another function, without storing those values to the contract. Here is my complete code:

```pragma solidity ^0.4.23;

contract Test {

function setThreeValues() public view returns(int, uint, uint) {
int x = 5;
uint y = 7;
uint z = 0;

x += 5;
y += 13;
z = uint(x) + y;

return (x, y, z);

}

function callThreeValues() public view returns(int, uint, uint) {
return setThreeValues();
}

// function callX() public view returns(int) {
//     return setThreeValues(int);
// }

// function callY() public view returns(uint) {
//     return setThreeValues(uint);
// }

// function callZ() public view returns(uint) {
//     return setThreeValues(uint);
// }

}

```

when I run my function `callThreeValues`, I get all three values I'm expecting, which is 10, 20, 30.

However with my three further `functions (callX, callY, callZ)`, I can't seem to get them to work....

with callX I'm trying to call the first value (10)

with callY I'm expecting to call the second value (20)

with callZ I'm expecting to call the third value (30)

I've obviously got the syntax wrong in my code, but I can't figure out how to get these functions working.

Sorry it's such a noob question!

Any help would be much appreciated :-)

• Ask yourself what is the meaning of invoking `setThreeValues(int)`... Hint: you're not supposed to pass a type to a function (certainly when it doesn't expect any input arguments!!!). Commented May 8, 2018 at 12:26

You can fix it as follows:

``````function callX() public view returns(int) {
var (a, , ) = setThreeValues();
return a;
}

function callY() public view returns(uint) {
var (, b, ) = setThreeValues();
return b;
}

function callZ() public view returns(uint) {
var (, , c) = setThreeValues();
return c;
}
``````

But please note, if I'm not mistaken, that the `var` keyword has been deprecated at Solidity 0.4.21 (so you'll have to read the spec for an alternative).

BTW, you can change `view` to `pure` in all functions, since none of them reads state (global) variables.

And of course, you could always simply do:

``````int a;
uint b;
uint c;
(a, b, c) = setThreeValues();
``````

And then return whichever value you want (`a` or `b` or `c`).