0

I tried to declare string inside my function but it doesn't work.

How to declare string inside function?

enter image description here

Earth_swp
  • 15
  • 7

2 Answers2

1

I suspect it has to do with some already answered question like Why do Solidity examples use bytes32 type instead of string?

However, a code like the one below seems to work around without declaring a string.

contract A{
        function f() constant returns(string){
            var s="hello";
            return s;
        }

    }
Davide C
  • 896
  • 1
  • 9
  • 22
0

looms like compiler is not getting the righ context for the string declaration.

As such below default rules applies to decide on the storage option based on context: - default storage for member variable is 'storage' - default for function parameters and return types is 'memory'

In EVM context, string is an array which has an extra annotation -'data location'. Thsi could be either 'memory' or 'storage'.

Seems in the below programm, it exolicitly looking to define the storage option.

As you can see below, I specified the stogare option as 'memory' and its compiling fine.

pragma solidity ^0.4.4;

contract Test {

    function print() constant returns(string){
        string memory x = "ddd";
        return x;
    } 
}
Achala Dissanayake
  • 5,819
  • 15
  • 28
  • 38