Ответ от Ethereum Stack Exchange:
library может использоваться, например:
import "github.com/Arachnid/solidity-stringutils/strings.sol";
contract C {
using strings for *;
string public s;
function foo(string s1, string s2) {
s = s1.toSlice().concat(s2.toSlice());
}
}
Используйте выше для quick test, которые вы можете изменить для ваших нужд.
С concatenating strings needs to be done manually for now, и делать это в контракте может потреблять ненужный газ (новая строка должна быть выделен, а затем каждый символ написано), стоит учесть, что использование так, что нужна конкатенация?
Если DApp может быть написан таким образом, чтобы интерфейс соединял строки, а затем передавал их в контракт для обработки, это может быть лучший дизайн.
Или, если контракт хочет хэш одну длинную строку, обратите внимание, что все встроенные в хэширования функции в солидности (sha256
, ripemd160
, sha3
) принимает переменное число аргументов и будет выполнять конкатенацию перед вычислением хэш ,