區塊鏈_Solidity智能合約_函數、事件與日誌03

2020-12-24 樂上輕至

文章目錄

值類型與引用類型Solidity語言特點數據類型分類代碼演示值類型演示測試數據類型類型引用類型注意事項 (重點)引用類型之memory測試引用類型之storage測試值類型與引用類型

Solidity語言特點

沒有main、沒有多線程、合約與合約裡面的函數都是通過地址調用語法簡單、類似javascript不成熟,但版本更新較快,且兼容性不太好具備面向對象特性:封裝、繼承、多態數據類型分類

值類型 (值傳遞)、引用類型 (指針傳遞, 類似桌面的快捷方式)

值類型包括

布爾值整型地址(Address)定長字節數組有理數和整型枚舉類型函數引用類型

solidity沒有指針,是採用storage進行修飾,複雜類型佔有較大的空間,在拷貝時佔用空間較大。下面這些類型設置為引用

數組 (Array)結構體映射代碼演示

值類型演示

測試數據類型類型

引用類型注意事項 (重點)

值類型沒有數據位置的概念,每次賦值時都有獨立的副本!引用類型包括:數組、結構體,映射、字符串(bytes數組), 只有引用類型才有數據位置的概念三種位置,先掌握內存與存儲變量3.1 內存其生命周期只存在與函數調用期間 --> 函數調用完畢後消失

3.2 存儲: 狀態變量 —> 隨著合約部署到區塊鏈中(以太坊分布式帳本)

3.3 調用數據 ( 暫時理解成內存變量 略)

4.默認的函數參數,包括返回的參數,他們是memory默認的局部變量是storage。而狀態變量只能是storage

注意:在版本0.5.0之前,數據位置(memory/storage)可以省略,在0.5.0之後需要指定

引用類型之memory測試

引用類型之storage測試

相關焦點

  • 要學習多少知識才能成為一名區塊鏈工程師
    >區塊鏈已經越來越被大眾熟悉和接受,但是縱觀整個行業區塊鏈技術開發人員,還是非常稀有的,從拉鉤上面的招聘信息來看。02需要學習一些什麼要想成為一名區塊鏈技術工程師,您必須開始學習有關區塊鏈的基礎知識。因此,首先要學習不同的區塊鏈術語和詞典。基本上,區塊鏈定義、工作流程、去中心化、共識協議、智能合約等都是一開始的事情。在這個過程中,相對還是輕鬆的。
  • 區塊鏈的智能合約是由哪三要素組成的?
    在區塊鏈的環境下,合約或者智能合約意味著區塊鏈交易將會遠不只簡單的買賣貨幣這種交易,還將會有更加廣泛的指令可以嵌入區塊鏈中。在更正式的定義中,一個合約就是通過區塊鏈使用數字貨幣和某人形成某種協議。傳統意義上的合約,就是雙方或者多方協議做或不做某事來換取某些東西。合同中的任何一方必須信任彼此並履行義務。
  • 三分鐘讀懂,XDP上的區塊鏈智慧合約是如何工作的
    要把區塊鏈作為核心技術自主創新的重要突破口,明確主攻方向,加大投入力度,著力攻克一批關鍵核心技術,加快推動區塊鏈技術和產業創新發展。 智能合約由來 智能合約的工作原理: 構建→存儲→執行 1)智能合約由區塊鏈內的多個用戶共同參與制定,可用於用戶之間的任何交易行為。
  • 幣安智能鏈通過Chainlink預言機 開發智能合約應用
    合作後,幣安智能鏈上的開發者將開發出各種全新的應用場景,覆蓋衍生品、加密貨幣支付和自動化資產管理等各個領域,通過Chainlink預言機連接鏈下數據開發功能更加豐富的智能合約應用。Chainlink可以在第一時間為幣安智能鏈上的開發者提供龐大安全的節點運營商網絡、優質的數據源以及成熟的預言機解決方案,為智能合約連接至鏈下數據並生成可驗證的隨機數。幣安智能鏈集成Chainlink預言機後,開發者將能夠基於此開發出安全可靠的智能合約基礎架構。
  • 動態區塊鏈(DYN):配套BDAP對比傳統區塊鏈智能合約
    a、目前智能合約最大的應用就是發幣,BDAP可以發應用,也可以支持應用上面發自己的幣或是積分,因此DYN是為服務於現實世界應用而生DYN團隊首席開發CDOO原話:「DYN更加關注現實世界而非只是數字貨幣世界,用以解決目前區塊鏈擴展性不足」,而且DYN已有落地產品pShare問世。並且它的應用是基於DYN自身的開發平臺開發的,這意味著什麼?
  • BSN長話短說之一:萬字庖解區塊鏈跨鏈技術|bsn|跨鏈|智能合約|bsn...
    BSN測試網中的Poly Enterprise跨鏈服務對Fabric、FISCO BCOS、Ethereum以及Neo四種區塊鏈框架進行了跨鏈集成,並同時支持BSN測試網中Fabric應用鏈、FISCO BCOS應用鏈、Ethereum Ropsten和Neo Testnet上的應用智能合約間的相互跨鏈調用。
  • 區塊鏈技術的算法規制
    區塊鏈是去中心化的,其數據的真實性、不可篡改性以及參與者對其的認可,都是通過算法保障的。但是,當推向邏輯極限時,算法治理可能會最終導致系統具有高度規範性和確定性;人們可以自由決定他們要遵守的特定規則集的系統,但在做出選擇之後,就不能再偏離這些規則。2016年發生的The Dao事件,就是不法分子利用智能合約算法存在的漏洞盜取客戶巨額資金的典型案例。
  • 荷月區塊鏈供應鏈金融平臺系統入選2020區塊鏈技術創新成果
    本次大會中國內外區塊鏈技術領域的主管領導、行業領袖、專家學者、技術精英等圍繞區塊鏈技術與應用展開交流探討。為探索區塊鏈發展的中國範式,推動區塊鏈技術應用健康、快速、可持續發展, 中國通信學會開展了 2020 年度區塊鏈技術與應用創新成果徵集活動,於 9 月 28 日,在本次大會上向大眾公布了「區塊鏈技術與應用創新成果」名單並頒發證書。
  • 智能合約開發必讀:這 10 個 Solidity 常見安全問題值得關注...
    譯者註:實際上由於 DeFi 應用之間的組合應用(例如閃電貸),又導致了多起嚴重的重入攻擊事件。現在 Solidity v0.6.x 發布 [3] 了,它帶來了許多重大變化 [4],然而掃描的智能合約中有 50%甚至還沒有準備好使用 Solidity v0.5.0 編譯器。
  • 夸克鏈信區塊鏈如何保護隱私
    如何通過夸克鏈信區塊鏈保護隱私信息數據安全和個人隱私的保護是支付寶一切業務的生命線。夸克鏈信區塊鏈技術的應用,能更好的保護用戶的隱私。因為夸克鏈信區塊鏈具有帳本不可篡改和智能合約等技術特點,使得跨境匯款的各參與方有了實時、可信的信息驗證渠道,匯款有跡可循,更加安全。同時,因為在聯盟鏈採用隱私保護模型,用戶的信息能得到更全面的保障。首先,夸克鏈信區塊鏈上不保存個人信息;僅保存可以驗證交易的信息。
  • 智能合約近期五大科技突破:標準化、系統化、合規化、架構化、工程化
    由於「The Dao 事件」,許多單位包括法學院、律師事務所、金融研究機構、區塊鏈研究院等立刻開始研究合規智能合約技術和法規。在此基礎設施上,例如一個金融機構出現新事件,該事件要經過該基礎設施傳送到其他單 位,包括在這些單位運行的區塊鏈和智能合約系統。其他單位可以是監管單位,而且同一件事件在這些區塊鏈系統或是智能合約系統都代表同樣信息,不能被更改。
  • 萬字詳解:智能合約的「五大技術突破」決定未來產業怎樣走?
    由於「The Dao 事件」,許多單位包括法學院、律師事務所、金融研究機構、區塊鏈研究院等立刻開始研究合規智能合約技術和法規。 事件處理的複雜性:ISDA 一直在提醒讀者,這樣的系統會非常複雜,並且該模型建立的系統應該將整體視為金融交易基礎設施,與許多機構,金融或是非金融機構進行交互。在此基礎設施上,例如一個金融機構出現新事件,該事件要經過該基礎設施傳送到其他單 位,包括在這些單位運行的區塊鏈和智能合約系統。
  • 深度解讀丨學習區塊鏈 你不可不知的五層架構!
    當前的區塊鏈技術採用的是五層架構,從下到上分別是數據層、網絡層、共識層、激勵層、智能合約層,如下圖所示。數據層數據層最底層的技術,是一切的基礎,主要實現了兩個功能,一個是相關數據的存儲,另一個是帳戶和交易的實現與安全。
  • 落地區塊鏈BIG保險鏈實現應用場景
    落地區塊鏈BIG保險鏈實現應用場景信任是保險存在的核心基礎,而基於技術信任的大量個體協同的區塊鏈,無疑是解決保險行業「信任問題」的最佳解決方案。對於保險領域應用場景,區塊鏈技術在促進數據共享、優化流程、提升效率、建立可信體系等方面擁有天然的優勢,可以提供更安全、更及時、可追溯的交易機制,是促進保險行業數位化轉型的重要支點。
  • 區塊鏈日報:日本加賀市利用區塊鏈技術進行認證
    今日稍早前,在B1June大會上,BM宣布B1為EOSIO區塊鏈專門設計了虛擬機(EOS VM)來運行合約,這將使得EOSIO比原來快12倍。螞蟻區塊鏈朱永春:區塊鏈使得電費結算自動化據巴比特消息,6月2日,在中國區塊鏈技術與應用高峰論壇上,螞蟻金服區塊鏈部門任高級解決方案架構師朱永春表示,隨著電力現貨市場試點建設與發展,電價與電能的動態調節成為未來趨勢,電網公司、電力交易中心、售電公司與用電企業間的用電合同變得趨於複雜。
  • 區塊鏈中的散列函數及Filecoin的選擇
    摘要: 技術解碼 |區塊鏈中的散列函數及Filecoin的選擇 散列(hash)函數是區塊鏈所利用的技術中的最為基礎的部分了,也是非常重要的部分之一。一個好的散列函數在一個密碼體系中的地位也十分重要。Filecoin作為新一代的區塊鏈,在散列函數的採用上也十分大膽。其中Posaidon就是比較新的散列算法。
  • 夸克區塊鏈與夸克鏈信
    一直以來小編在講夸克鏈信,小編相信大家對夸克鏈信都有了一定的認識,其實許多小夥伴還是搞不清楚夸克區塊鏈以及夸克鏈信有何區別?甚至許多人認為夸克區塊鏈就是夸克鏈信,其實不然,夸克區塊鏈與夸克鏈信並不是一個概念,今天小編就來說一下夸克區塊鏈與夸克鏈信的區別。
  • 用Python進行DeFi應用的開發 不同的區塊鏈項目是如何解決安全問題...
    然而在 DeFi 應用中,由於區塊鏈的不可篡改性,智能合約一旦上線並出現安全隱患,對用戶造成的損失是巨大且不可挽回的。因此,DeFi 應用開發的過程需要用大量的測試和昂貴的審計以獲取足夠的安全性,而反過來會犧牲迭代的速度,影響了產品的易用性。並且,因為安全審計的價格昂貴,很多開發者並沒有能力發起 DeFi 應用。
  • 讀懂夸克鏈信區塊鏈
    ,參與各方可以採用不同的語言實現合約服務邏輯,以保證合約服務語義層面的一致性和合約的分布性。可以設計和開發的要件有:合約流程,合約服務,合約代碼,技術服務,規則服務,合規服務。參與主體特別是驗證節點都可以參與到夸克鏈信區塊鏈的平臺運維中來,運維行為包括對運行節點服務的容器化集群,提供動態擴展能力,安裝多語言多VM實現節點,支持多節點並行運行,並行驗證。
  • 區塊鏈怎樣改革人事行業的工作
    打開APP 區塊鏈怎樣改革人事行業的工作 我愛至尊寶 發表於 2020-03-05 10:31:39 區塊鏈,很多人會將它簡單理解成加密貨幣的基礎性技術