solidity字符串拼接

如果你希望馬上開始學習以太坊DApp開發,可以訪問匯智網提供的出色的在線互動教程:

  • 以太坊DApp實戰開發入門
  • 去中心化電商DApp實戰開發

當你開始學習使用solidity開發以太坊智能合約之后,很快你會碰到一個問題:

在solidity中該如何拼接字符串?

可能你已經試過了,下面的代碼試圖把兩個字符串使用相加的運算符連接起來,但是這行不通:

var str = 'asdf'
var b = str + 'sdf'
復制代碼

實際上,根據solidity的官方文檔,目前在solidity中,需要我們自己來實現字符串拼接功能。

拼接字符串實現代碼

例如,下面的代碼實現兩個字符串的拼接,基本 上是利用bytes和string之間的類型轉換來實現字符串拼接:

contract EzDemo {function strConcat(string _a, string _b) internal returns (string){bytes memory _ba = bytes(_a);bytes memory _bb = bytes(_b);string memory ret = new string(_ba.length + _bb.length + _bc.length + _bd.length + _be.length);bytes memory bret = bytes(ret);uint k = 0;for (uint i = 0; i < _ba.length; i++)bret[k++] = _ba[i];for (i = 0; i < _bb.length; i++) bret[k++] = _bb[i];return string(ret);}  
}
復制代碼

上面的代碼很容易擴展到拼接多個字符串。

使用第三方庫

不過好在有人寫了一個庫,可以讓我們省些力氣:

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());}
}
復制代碼

以太坊開發入門免費教程

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/278086.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/278086.shtml
英文地址,請注明出處:http://en.pswp.cn/news/278086.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Confluence Cloud的Teams Message Extension

Confluence Cloud的Message Extension現在正式登入Microsoft Teams。 它可用于團隊頻道和私人聊天&#xff0c;使您的對話更具描述性和信息性。 從Microsoft Teams應用商店獲取Confluence Cloud應用程序并連接到Confluence Cloud實例。 連接后&#xff0c;您將能夠搜索Conflue…

45 | 打蛇打七寸:精準測試

轉載于:https://www.cnblogs.com/lmx0621/p/10614966.html

Teams App統計

周末閑來無事&#xff0c;統計了一下Teams的app商店里的app ( Teams App Store )。截至到現在&#xff08;2018年11月&#xff09;一共有145個app。要注意一點&#xff1a;如果app不是公開的&#xff08;即單獨安裝到Office365租戶里&#xff0c;并沒有提交到office store&…

你必須要懂的APK瘦身知識

隨著業務復雜度的逐漸增加&#xff0c;代碼、資源也在不斷的增加&#xff0c;此時你的APP大小也在增加。從用戶層面來說&#xff0c;面對動輒幾十兆的APP來說在非WIFI情況下還是會猶豫要不要下載&#xff0c;不下載你就可能因此失去了一個用戶。從公司層面來講&#xff0c;流量…

DHT網絡

(基礎技術) 現在有一種方法&#xff0c;可以通過磁力鏈接&#xff0c;例如magnet:?xturn:btih:0482e0811014fd4cb5d207d08a7be616a4672daa&#xff0c;就可以獲取BT文件。 這個是通過DHT網絡來實現的。 DHT網絡是一個去中心化的&#xff0c;分布式信息存儲系統。 存儲的信息就…

Java基礎 Day04(個人復習整理)

分支結構 2、switch語句 因為if語句的級聯式最多只會處理三種情況&#xff0c;如果出現多情況 1>可以繼續使用if語句的級聯式&#xff0c;但是可能代碼的可讀性就會變差。  2>采用switch語句來解決。 switch語法格式&#xff1a; switch (存在多種情況的變量) {case 值…

java如何獲取一個double的小數位數

前言 看標題是不是覺得這是一個很簡單的問題&#xff0c;我一開始也是這么認為的&#xff0c;但是實際情況下&#xff0c;在各種情況下我們都進行了測試&#xff0c;發現很多實際情況是無法不盡如人意的。 方法分析 當前能想到的比較容易有下面幾種 1、直接使用double處理 2、將…

Node文件模塊

在上一篇文章中有提到&#xff0c;Node模塊分為核心模塊和文件模塊&#xff0c;接下來就簡單總結一下文件模塊。 文件模塊則是在運行時動態加載&#xff0c;需要完整的路徑分析、文件定位、編譯執行過程、速度相比核心模塊稍微慢一些&#xff0c;但是用的非常多。這些模塊需要我…

PHP GD庫解析一張簡單圖片并輸出

這里只演示一下2種顏色值的圖片&#xff0c;簡單描述下概念。 首先要安裝下GD庫。否則下面的代碼運行不了。 $size getimagesize(2.png); // 獲取圖片大小 $res imagecreatefrompng(2.png); // 獲取指定圖片的資源對象for ($i 0; $i < $size[1]; $i) {for ($j 0; $j &…

Permutations CodeForces - 736D (矩陣逆)

對于刪除每個對(x,y), 可以發現他對答案的貢獻為代數余子式$A_{xy}$ 復習了一下線代后發現代數余子式可以通過伴隨矩陣求出, 即$A_{xy}A^*[y][x]$, 伴隨矩陣$A^*|A|A^{-1}$可以通過高斯消元$O(\frac{n^3}{\omega})$求出 #include <iostream> #include <algorithm> …

開發Teams的messaging extension

什么是Messaging Extension Messaging Extension是微軟Teams的一種十分有用的擴展方式。可以讓用戶發送adaptive cards。具體的說明不在這里展開了。可以閱讀微軟官方的詳細說明&#xff1a; https://docs.microsoft.com/en-gb/microsoftteams/platform/concepts/messaging-e…

歸并排序(轉)

轉載自&#xff1a;https://www.cnblogs.com/chengxiao/p/6194356.html 歸并排序&#xff08;MERGE-SORT&#xff09;是利用歸并的思想實現的排序方法&#xff0c;該算法采用經典的分治&#xff08;divide-and-conquer&#xff09;策略&#xff08;分治法將問題分(divide)成一些…

Site24x7 為Teams提供可智能 DevOps

我們生活在一個云的時代, SaaS 應用程序每天都在推動我們的生產力。作為一個消費者, 很難想象如果你最喜歡的應用無法訪問&#xff0c;即使只是一秒鐘無法訪問。作為 SaaS業務, 更難以想象您的服務面臨停機, 每一分鐘停止服務都會花費大量的資金, 當然還損失客戶的信任。Site24…

XUbuntu22.04之跨平臺容器格式工具:MKVToolNix(二百零三)

簡介&#xff1a; CSDN博客專家&#xff0c;專注Android/Linux系統&#xff0c;分享多mic語音方案、音視頻、編解碼等技術&#xff0c;與大家一起成長&#xff01; 優質專欄&#xff1a;Audio工程師進階系列【原創干貨持續更新中……】&#x1f680; 優質專欄&#xff1a;多媒…

redis集群搭建踩坑筆記

推薦參考教程&#xff1a;https://blog.csdn.net/pucao_cug/article/details/69250101 錯誤&#xff1a; from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require from /usr/local/redis-3.0.6/src/redis-trib.rb:25:in <main> 解決&#xff1a; g…

Docker 創建鏡像

文章首發自個人網站&#xff1a;https://www.exception.site/docker/docker-create-image 本文中&#xff0c;您將學習 Docker 如何創建鏡像&#xff1f;Docker 創建鏡像主要有三種&#xff1a; 基于已有的鏡像創建&#xff1b;基于 Dockerfile 來創建&#xff1b;基于本地模板…

hdfoo站點開發筆記

為了安全,也要兼顧編輯器切換管理 開發時不必管目錄名稱的事, 只是在部署的時候,才修改應用目錄和tp目錄的名字就行了. 為了提高tp的加載效率, 始終給app和tp以絕對路徑.就是以 realpath來定位 realpath返回的就是 一個絕對路徑, 在lx中是以 斜杠 根樹開始的. 參數可以是文件名…

論文致謝

這篇致謝語&#xff0c;是我論文的最后一節&#xff0c;也是我放在最后的最后寫的內容。之所以拖到最后&#xff0c;是因為我不知道該用怎么的方式來結束我的論文。我想&#xff0c;要結束的不只是文章&#xff0c;還是研究生生涯&#xff0c;是我在廈門大學三年來的一切&#…

使用Azure Pipelines來實現Teams App的CI

我在之前的文章里介紹了如何一步步配置CI/CD來部署Teams App( 之前的文章 )&#xff0c;隨著Azure DevOps的發展&#xff0c;微軟推出了Azure Pipelines。在這篇文章中&#xff0c;主要介紹什么是Azure Pipelines&#xff0c;以及如何使用Azure Pipelines來進行Teams App的構建…

004-React入門概述

一、概述 參考地址&#xff1a;https://reactjs.org/docs/try-react.html 1.1、本地快速體驗 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>Hello World</title><script src"https://unpkg.com/react16/…