Một câu trả lời từ Ethereum Stack Exchange:
Một library thể được sử dụng, ví dụ:
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());
}
}
Sử dụng trên cho một quick test mà bạn có thể sửa đổi cho các nhu cầu của bạn.
Kể từ concatenating strings needs to be done manually for now, và làm như vậy trong một hợp đồng có thể tiêu thụ khí không cần thiết (string mới phải được phân bổ và sau đó mỗi nhân vật bằng văn bản), nó là giá trị xem xét các trường hợp sử dụng mà cần nối chuỗi là gì?
Nếu DApp có thể được viết theo cách sao cho giao diện kết nối các chuỗi và sau đó chuyển nó vào hợp đồng để xử lý, đây có thể là thiết kế tốt hơn.
Hoặc, nếu hợp đồng muốn băm một chuỗi dài duy nhất, lưu ý rằng tất cả các built-in băm chức năng trong Vững Chãi (sha256
, ripemd160
, sha3
) thực hiện một số biến của tham số và sẽ thực hiện nối trước khi tính toán các hash .