程式麻瓜打造區塊鏈網站6–Hello World

在學習程式語言的時候通常都會從Hello World這個簡單的寫程式來看一個語言的架構,Hello World 程式就是單純使執行結果顯示Hello World字串而已,然而solidity並不像C語言等有print列印出字的這個指令,所以要讓執行結果顯示helloworld字樣並沒有特定方法,以下舉兩個例子分別是用變數的方式顯示,和讓函式傳回回傳值。

接下來,請先把上面的程式碼複製,在進入remix網頁新增檔案,將其貼上便以javaVM執行。

第1行: // SPDX-License-Identifier: MIT

這行是在新版remix新增的規範,在程式第一行註記你的程式碼要開放的權限,像是是否允許商業使用或是要載明作者等。我這裡使用MIT的授權規範,他算是最寬鬆的規範,允許商業使用,helloworld程式沒有人要偷所以選最寬鬆的就好了,如果想了解SPDX請參閱自由軟體授權資訊的標示說明與 SPDX或查詢SPDX授權表

第2行: pragma solidity ^0.6.0;

這一行要指出這個程式符合第幾版的solidity規則,^這個符號表示”以上”,像這裡就是0.6.0以上。當然也能以區間表示,>=0.5.0 <0.6.0表示符合第0.5.0到0.6.0的規則。且要注意每個指令的最後都要以分號;結尾。

第3行:contract Helloworld {}

solidity是物件導向語言,每個物件都是由某個Class所產生的一個Instance ,Class就如餅乾模具,Instance就是餅乾模具產出的餅乾,contract就是一個class內含Attribute(屬性,儲存物件的資訊,也就是變數)和Method(方法,操作物件的資訊,也就是函式)。反正就當作為合約命名而已。

第5~12行是一種方法: 

先用string public sayhello;宣告一個叫sayhello的字串變數,public是指讓大家都能看到這個字串變數的值,也就會在remix顯示出按鈕,除了public的修飾詞還有external、internal、private。接著以constructor() public {}這個函式是指在合約部屬完會做的初始設定,我們這裡讓sayhello這個變數的值為helloworld這串字,要記得用“ ”框著字串,否則會使helloworld 被解讀成一個變數。

部署之後在remix左邊的地方點下sayhello按鈕就能看到helloworld字樣。在saysomething這個函式裡我們要先給予為string型態的輸入值sth,memory是指存在記憶體中。在這個函式裡我們把sayhello變數改成輸入值sth,就能顯示出其他文字了 。

第13~15行是另一總方法:

method_2這個函式沒有輸入值有回傳值,用returns宣告出回傳值是個字串,在函式裡就直接用return回傳出字串。點下method_2按鈕後就能看見回傳的helloworld字樣。